Java Java.util.Collections.rotate()方法及实例
java.util.Collections.rotate() 方法存在于java.util.Collections类中。它被用来将指定的集合列表中的元素旋转一个给定的距离。
语法:
public static void rotate(List< type > list, int distance) **
**参数:
list – 要被旋转的列表。
distance – 旋转列表的距离。
type – 要被旋转的列表的类型。类型的例子有
类型包括Integer, String, 等。
返回:
NA
抛出:
UnsupportedOperationException – 如果指定的列表或
其列表迭代器不支持set操作。
对距离值没有任何限制。它可以是零,负数,或者大于list.size()。调用此方法后,在索引i处的元素将是之前在索引(i – distance)mod list.size()处的元素,对于i的所有值在0和list.size()-1之间,包括在内。
// Java program to demonstrate working of
// java.utils.Collections.rotate()
import java.util.*;
public class RotateDemo
{
public static void main(String[] args)
{
// Let us create a list of strings
List<String> mylist = new ArrayList<String>();
mylist.add("practice");
mylist.add("code");
mylist.add("quiz");
mylist.add("geeksforgeeks");
System.out.println("Original List : " + mylist);
// Here we are using rotate() method
// to rotate the element by distance 2
Collections.rotate(mylist, 2);
System.out.println("Rotated List: " + mylist);
}
}
输出:
Original List : [practice, code, quiz, geeksforgeeks]
Rotated List: [quiz, geeksforgeeks, practice, code]
如何在Java中使用rotate()快速旋转一个数组?
Java中的数组类没有rotate方法。我们可以使用Collections.rotate()来快速旋转一个数组。
// Java program to demonstrate rotation of array
// with Collections.rotate()
import java.util.*;
public class RotateDemo
{
public static void main(String[] args)
{
// Let us create an array of integers
Integer arr[] = {10, 20, 30, 40, 50};
System.out.println("Original Array : " +
Arrays.toString(arr));
// Please refer below post for details of asList()
// https://www.geeksforgeeks.org/array-class-in-java/
// rotating an array by distance 2
Collections.rotate(Arrays.asList(arr), 2);
System.out.println("Modified Array : " +
Arrays.toString(arr));
}
}
输出:
Original Array : [10, 20, 30, 40, 50]
Modified Array : [40, 50, 10, 20, 30]
极客教程