Java基础之---Collections工具类
程序员文章站
2024-01-13 19:58:58
...
Collections工具类位于java.util包下,这个类包括了专门的静态方法,操作或返回集合对象,它包括了各种操作集合对象的算法。现在我们将对这个工具类的所有公共方法进行分析。
1,public static <T extends Comparable<? super T>> void sort(List<T> list)列表排序方法。
public static <T extends Comparable<? super T>> void sort(List<T> list) 该方法对指定的List对象排序,我们来看看这个方法的原代码:
public static <T extends Comparable<? super T>> void sort(List<T> list) {
Object[] a = list.toArray();//将List对象转换成Object数组
Arrays.sort(a);//用数组工具类进行排序
ListIterator<T> i = list.listIterator();//将List对象变成迭代对象
for (int j=0; j<a.length; j++) {//遍历排序后的数组
i.next();
i.set((T)a[j]);//重新赋值
}
}
我们并不难发现,这个方法是先将List对象转换成数组,然后用数组工具类Arrays的sort方法进行排序,然后将排序后的数组元数重新赋值给这个List对象。
示例代码
由于这个方法与Arrays.sort()方法的作用类似,所以可以参考上篇文章《Java基础之---Arrays工具类》中的示例。
2, public static void reverse(List<?> list)对指定List进行反转,即倒排list里的所有元素。
示例代码
List listTest=new ArrayList();
listTest.add("1");
listTest.add("2");
listTest.add("3");
listTest.add("4");
listTest.add("5");
System.out.println("List对象listTest反转前内部元素为:"+listTest.toString());
Collections.reverse(listTest);
System.out.println("List对象listTest反转后内部元素为:"+listTest.toString());
运行结果
List对象listTest反转前内部元素为:[1, 2, 3, 4, 5]
List对象listTest反转后内部元素为:[5, 4, 3, 2, 1]
3,public static void shuffle(List<?> list) 随机打乱list对象中的元素。
示例代码
List listTest=new ArrayList();
listTest.add("1");
listTest.add("2");
listTest.add("3");
listTest.add("4");
listTest.add("5");
System.out.println("List对象listTest打乱前内部元素为:"+listTest.toString());
Collections.shuffle(listTest);
System.out.println("List对象listTest打乱后内部元素为:"+listTest.toString());
运行结果
List对象listTest打乱前内部元素为:[1, 2, 3, 4, 5]
List对象listTest打乱后内部元素为:[3, 1, 4, 2, 5]
4,public static void rotate(List<?> list, int distance)将指定的LIST对象中的元素按指定的距离旋转,当distance为正数时,从高位到低位旋转,当distance为负数时从低位向高位旋转。
示例代码
List listTest=new ArrayList();
listTest.add("1");
listTest.add("2");
listTest.add("3");
listTest.add("4");
listTest.add("5");
System.out.println("List对象listTest旋转前内部元素为:"+listTest.toString());
Collections.rotate(listTest, 2);//当2为负数时是低位向高位旋转
System.out.println("List对象listTest高位向低位旋转2位后内部元素为:"+listTest.toString());
运行结果
List对象listTest旋转前内部元素为:[1, 2, 3, 4, 5]
List对象listTest高位向低位旋转2位后内部元素为:[3, 4, 5, 1, 2]
示例代码
List listTest=new ArrayList();
listTest.add("1");
listTest.add("2");
listTest.add("3");
listTest.add("4");
listTest.add("5");
System.out.println("List对象listTest旋转前内部元素为:"+listTest.toString());
Collections.rotate(listTest, -2);//当2为负数时是低位向高位旋转
System.out.println("List对象listTest低位向高位旋转2位后内部元素为:"+listTest.toString());
运行结果
List对象listTest旋转前内部元素为:[1, 2, 3, 4, 5]
List对象listTest低位向高位旋转2位后内部元素为:[3, 4, 5, 1, 2]
我的网店,有劳各位参观参观 http://mrs-x.taobao.com/