Java程序 颠倒列表

Java程序 颠倒列表

颠倒列表是指颠倒列表后,第一个元素应与最后一个元素互换,第二个元素应与倒数第二个元素互换,以此类推,直到中间的元素,最后的列表就是颠倒的列表。

示例:

输入:
"PLATFORM", "LEARNING",  "BEST", "THE", "IS", "GFG"
输出:
Reverse order of given List :- 
[GFG, IS, THE, BEST, LEARNING, PLATFORM]

我们主要可以通过三种方式来扭转这个名单。

  1. Recursively
    1. Using Collections.reverse()
    2. 使用List.add()和List.remove方法

方法1:使用递归法

一个函数直接或间接地调用自己的过程被称为递归,相应的函数被称为递归函数。




// Java Program to Reverse a List recursively   import java.io.*; import java.util.*;   class GFG {     public static <T> void revlist(List<T> list)     {         // base condition when the list size is 0         if (list.size() <= 1 || list == null)             return;                   T value = list.remove(0);                 // call the recursive function to reverse         // the list after removing the first element         revlist(list);           // now after the rest of the list has been         // reversed by the upper recursive call,         // add the first value at the end         list.add(value);     }     public static void main(String[] args)     {         System.out.println(             "Reverse order of given List :- ");           List<String> gfg = new ArrayList<>(             Arrays.asList("PLATFORM", "LEARNING",  "BEST", "THE", "IS", "GFG"));           revlist(gfg);           System.out.println(gfg);     } }

输出

Reverse order of given List :- 
[GFG, IS, THE, BEST, LEARNING, PLATFORM]

时间复杂度 :O(N) 其中N是列表的大小

辅助空间: 呼叫堆栈的O(N)

方法二:使用Collections.reverse()

java.util.Collections.reverse()方法是一个java.util.Collections类方法。它反转了作为参数传递的列表中的元素的顺序。




// Java program to reverse the list // using Collections.reverse() method   import java.io.*; import java.util.*;   class GFG {     public static void main(String[] args)     {         List<Integer> number = new ArrayList<>(             Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8));                 System.out.println(             "Reverse order of given List :- ");           // the number list will be reversed using this method         Collections.reverse(number);                 System.out.println(number);     } }

输出

Reverse order of given List :- 
[8, 7, 6, 5, 4, 3, 2, 1]

方法3:使用List.add()+List.remove()

List接口的List.add()方法用于将参数中指定的元素追加到列表的最后。

List接口的List.remove()方法用于从列表中移除参数中的指定元素。




// Java program to reverse the list using List.add() // and List.remove() method   import java.io.*; import java.util.*;   class GFG {     public static void main(String[] args)     {         List<Integer> number = new ArrayList<>(             Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8));                 System.out.println(             "Reverse order of given List :- ");             for (int k = 0, j = number.size() - 1; k < j; k++)         {             number.add(k, number.remove(j));         }           System.out.println(number);     } }

输出

Reverse order of given List :- 
[8, 7, 6, 5, 4, 3, 2, 1]

时间复杂度: O(n)

辅助空间: O(1)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程