`
bewithme
  • 浏览: 423256 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java基础之---Collections工具类

 
阅读更多

     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/

分享到:
评论

相关推荐

    559.557.JAVA基础教程_集合-Collections工具类常用方法的测试(559).rar

    559.557.JAVA基础教程_集合-Collections工具类常用方法的测试(559).rar

    Java期末复习-类集框架

    Java类集框架 最大单值操作父接口Collection及其子接口、子类: List接口、ArrayList类、Vector类、栈操作类Stack、链表操作类LinkList、队列操作...Collections工具类 Comparable接口、equals()方法、hashCode()方法

    Collections工具类_动力节点Java学院整理.

    Java工具中的Collections工具类_动力节点Java学院整理.

    commons-collections-3.2.jar - Java包下载页

    这是commons-collections-3.2.jar的下载,它是commons中各集合类和工具类的封装包。因为commons-collections有很多版本,每个版本的环境又有些不同,所以版本对应是最好的,有需要3.2版本的可下载

    Java基础知识点总结.docx

    Collections--集合工具类 83 Arrays—数组对象工具类 84 增强for循环 85 可变参数(...) 86 枚举:关键字 enum 86 自动拆装箱 86 泛型 87 &lt;java.lang&gt;System 89 &lt;java.lang&gt;Runtime 90 &lt;java.lang&gt;Math 90 &lt;java....

    java常用工具类的使用

    在Java开发类库中,提供了很多工具类,我们即将学习最常见的工具类,比如对日期的操作,对集合的操作等。具体更多的工具类,请参考JavaDoc文档。 2. java.util.Date类 Date类包装了毫秒值,毫秒值表示自1970年1月1...

    java中操作json字符串的工具类

    - commons-beanutils-1.8.0.jar - commons-collections-3.1.jar - commons-lang-2.5.jar - commons-logging-1.2.jar - ezmorph-1.0.6.jar - json-lib-2.4-jdk15.jar

    Java操作集合工具类Collections使用详解

    主要介绍了java操作集合工具类Collections使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    java json所需要的jar包

    里面包含所有java 使用json所需要的jar包,包含json-lib-2.4-jdk15,ezmorph-1.0.6,commons-logging-1.1.1,commons-lang-2.5,commons-beanutils-1.8.0,commons-collections-3.2.1

    google-collections-1.0.rar

    google公共工具类;google collections是google的工程师利用传说中的“20%时间”开发的集合库,它是对java.util的扩展,提供了很多实用的类来简化代码。google collections使用了范型,所以要求jdk1.5以上。

    Java基础最全笔记文档

    6. 集合工具类Collections、Map集合、集合嵌套、不可变集合 7. Stream流、异常处理 8. Logback日志框架、阶段项目 9. File、方法递归、字符集、IO流(一) 10. IO流(二) 11. 多线程 12. 网络编程 13. 单元测试、...

    commons-collections4-4.4-bin.zip

    Commons-Collections基于JDK中集合相关的类而开发,提供了新的接口、实现和工具。当我们在操作集合时,如有需要可以在该jar包中寻找是否已经有自己需要的功能。

    java各种功能集合和工具.rar

    java常用工具类说明 JDK本身提供的工具类 Guava提供的工具类 Apache common-Collection提供的工具类 JDK提供的工具类 Arrays Collections Objects Arrays是操作数组对象的工具类 Collections是操作集合对象的...

    JAVA基础课程讲义

    Collections工具类 141 Comparable接口 141 equals和hashcode方法 143  泛型 144 思考作业 145 上机作业 145 第八章 IO技术 146 为什么需要学习IO技术 146 基本概念 146 数据源 146 流的概念 146 第一个简单的IO流...

    Collections工具类_动力节点Java学院整理

    Collections工具类提供了大量针对Collection/Map的操作。这篇文章主要介绍了Collections工具类_动力节点Java学院整理,需要的朋友可以参考下

    Collections源码java-java-design-patterns:来自不同来源的设计模式的集合。当需要在工作或学校中实施模式时,我

    它是一个非常强大的工具,因为类可以实现多个接口,因此可以连接许多继承树,并使它们可以通过接口协定进行通信。 抽象类 特殊类型的Java类,使用抽象类代替创建大量方法和字段以及所有相关逻辑

    json-jar包工具类

    json需要的6个jar包commons-beanutils-1.8.3/commons-collections-3.2.1/commons-lang-2.6/commons-logging-1.1.1/ezmorph-1.0.6/json-lib-2.4-jdk15

    Java 基础面试题

    该文档主要整理了常见的Java基础面试题,包含以下内容: 1. 抽象类和接口的区别 2. 什么时候使用抽象类,什么时候使用接口 3. 八大基本数据类型,所占字节数 4. List、Set、Map的区别 5. 什么情况下使用List、...

    7.尚硅谷_java基础_java集合

    Java 集合概述 Collection 接口 Iterator 接口 Set List Map Collections 工具类 Enumeration

    JAVA基础入门教程

    前我们已经很少使用JDK1.1版本,所以我们所说的Java都是指Java2 之 后的。J2SDK当然就是Java 2 Software Develop Kit 。 z 什么是JRE ? JRE (Java Runtime Environment),即Java运行环境,通常已包含在 J2SDK中了...

Global site tag (gtag.js) - Google Analytics