当前位置:首页 > 开发 > 编程语言 > Java > 正文

Java基础之---Collections工具类

发表于: 2011-10-10   作者:bewithme   来源:转载   浏览次数:
摘要:      Collections工具类位于java.util包下,这个类包括了专门的静态方法,操作或返回集合对象,它包括了各种操作集合对象的算法。现在我们将对这个工具类的所有公共方法进行分析。  1,public static <T extends Comparable<? super T>> void sort(List

     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/

Java基础之---Collections工具类

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
本章目标 掌握Collections与Collection接口的区别 掌握Collections类中提供的主要操作方法 Collecti
1.掌握Collections 与 Collection 接口的区别 2.掌握Collections 类中提供的主要操作方法 在面试题
Collections常用方法及常量: 验证:空集合的操作 [java] view plain copy <img style="border-s
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------ 第一讲,第二
Hierarchy如下: 该类的主要方法如下图所示: 三个protect字段 capacityIncrement:每次数组扩充的
以前为了了解哈夫曼树,而做的一个文件压缩的东东,,实现给文件压缩,与解压 话不多多说先上图,当
这是本人以前学习java时做的一个文件搜索的东东,一方面对File进行一些了解,另一方面对递归一些了
简介 在java的包java.util和java.util.concurrent里面定义了java的集合类框架。我们大部分日常使用
1,整数被0除将会产一个异常; 2,浮点数被0除会得到无穷大或NaN(Not a Number)结果; 3,strictfp
Queue用于模拟“队列”这种数据结构,队列通常是指“先进先出(FIFO)”的容器。 1 Queue接口源码 p
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号