1、Collections类概述
        针对集合操作 的工具类,都是静态方法
 
2、Collections成员方法
        public static <T> void sort(List<T> list):排序 默认情况下是自然顺序。
        public static <T> int binarySearch(List<?> list,T key):二分查找
        public static <T> T max(Collection<?> coll):最大值
        public static void reverse(List<?> list):反转
        public static void shuffle(List<?> list):随机置换
 
例子1:存储基本包装类
package collectiondemos;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
/**
* Created by gao on 15-12-22.
*/
public class CollectionsDemo01 {
public static void main(String[] args) {
// 创建集合对象
List<Integer> list = new ArrayList<Integer>();
// 添加元素
list.add(30);
list.add(20);
list.add(50);
list.add(10);
list.add(40);
System.out.println("list:" + list); //list:[30, 20, 50, 10, 40]
// public static <T> void sort(List<T> list):排序 默认情况下是自然顺序。
//Collections.sort(list);
//System.out.println("list:" + list); //list:[10, 20, 30, 40, 50]
// public static <T> int binarySearch(List<?> list,T key):二分查找
System.out.println("binarySearch:" + Collections.binarySearch(list, 30)); //binarySearch:2
System.out.println("binarySearch:" + Collections.binarySearch(list, 300)); //binarySearch:-6
// public static <T> T max(Collection<?> coll):最大值
System.out.println("max:" + Collections.max(list)); //max:50
// public static void reverse(List<?> list):反转
// Collections.reverse(list);
// System.out.println("list:"+list); //list:[40, 10, 50, 20, 30]
//public static void shuffle(List<?> list):随机置换
Collections.shuffle(list);
System.out.println("list:" + list); //list:[20, 50, 10, 30, 40]
}
}
例子2:存储自定义对象
学生类:

package collectiondemos;
public class Student implements Comparable<Student>{
private String name;
private int age;
public Student() {
super();
}
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public int compareTo(Student s) {
int num = this.age - s.getAge();
int num2 = num == 0 ? this.name.compareTo(s.getName()) : num;
return num2;
}
}

测试类:

package collectiondemos;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
* Created by gao on 15-12-22.
*/
public class CollectionsDemo02 {
public static void main(String[] args) {
// 创建集合对象
List<Student> list = new ArrayList<Student>();
// 创建学生对象
Student s1 = new Student("林青霞", 27);
Student s2 = new Student("风清扬", 30);
Student s3 = new Student("刘晓曲", 28);
Student s4 = new Student("武鑫", 29);
Student s5 = new Student("林青霞", 27);
// 添加元素对象
list.add(s1);
list.add(s2);
list.add(s3);
list.add(s4);
list.add(s5);
// 排序
// 方式一:自然排序
// Collections.sort(list);
// 方式二:比较器排序
// 如果同时有自然排序和比较器排序,以比较器排序为主
Collections.sort(list, new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
int num = s2.getAge() - s1.getAge();
int num2 = num == 0 ? s1.getName().compareTo(s2.getName()) : num;
return num2;
}
});
// 遍历集合
for (Student s : list) {
System.out.println(s.getName() + "---" + s.getAge());
}
}
}
输出结果:
风清扬---30
武鑫---29
刘晓曲---28
林青霞---27
林青霞---27
 

Java API —— Collections类的更多相关文章

  1. Java API 常用类(一)

    Java API 常用类 super类详解 "super"关键字代表父类对象.通过使用super关键字,可以访问父类的属性或方法,也可以在子类构造方法中调用父类的构造方法,以便初始 ...

  2. es2.4.6 java api 工具类

    网上找了很久没找到2.4.X 想要的java api 工具 自己写了一个,分享一下 导入所需的jar <!-- ElasticSearch begin --> <dependency ...

  3. Java中Collections类的排序sort函数两种用法

    java中的Colletions类主要实现列表List的排序功能.根据函数参数的传递,具体的排序可以分为 : 1.  自然排序(natural ordering). 函数原型:sort(List< ...

  4. import java.util.Collections类

    Collections类提供了一些操作集合的方法  下面介绍几个方法 1.将集合变为线程安全的 三个方法分别对应了ArrayList,HashMap,HashSet: Collections.sync ...

  5. Java API —— DateFormat类

    1.DateFormat类概述         DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间. 是抽象类,所以使用其子类SimpleDateForm ...

  6. Java API ——StringBuffer类

    1.StringBuffer类概述 1)我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间.而StringBuffer就可以解决这个问题 2)线程安全的可变字 ...

  7. Java中Collections类详细用法

    1.sort(Collection)方法的使用(含义:对集合进行排序). 例:对已知集合c进行排序? public class Practice { public static void main(S ...

  8. Java—API/Obiect类的equals toString方法/String类/StringBuffer类/正则表达式

    API  Java 的API(API: Application(应用) Programming(程序) Interface(接口)) 就是JDK中提供给我们使用的类,这些类将底层的代码实现封装了起来 ...

  9. Java API —— File类

    1.File类的概述         文件和目录路径名的抽象表示形式,创建File对象后,仅仅是一个路径的表示,不代码具体的事物一定是存在的. 2.构造方法         · public File ...

随机推荐

  1. require.js入门指南(二)

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

  2. 基于 WebAPI 的 API 实现

    本文基于 WebAPI OData (微软发起的一个格式标准,其中一个比较有意思的是可以直接在 Excel 中填入 API 就可以展示了) Swashbuckle.OData(把 API 生成一个测试 ...

  3. Hiberante+jpa,注解生成32字符的Id

    @Id @GenericGenerator(name = "id-generator", strategy = "uuid") @GeneratedValue( ...

  4. Azure IaaS for IT Pros Online Event 总结

    微软一个为期4天的一个有关于Azure的介绍,主要总结了些Azure现有的技术以及将会推出东西 主题链接 http://channel9.msdn.com/Events/Microsoft-Azure ...

  5. PHP dirname() 函数 __FILE__ __DIR__

    __DIR__返回文件所处的目录,除非是根目录,否则末尾不带\ __FILE__ 返回文件路径 dirname(__DIR__) 文件所处目录的上级目录,末尾也不带斜杠

  6. 实现iOS长时间后台的两种方法:Audiosession和VOIP(转)

    分类: Iphone2013-01-24 14:03 986人阅读 评论(0) 收藏 举报 我们知道iOS开启后台任务后可以获得最多600秒的执行时间,而一些需要在后台下载或者与服务器保持连接的App ...

  7. C#基础原理拾遗——面试都爱问的委托和事件(纠正)

    这篇博客是我昨天写的,文中的观点有些问题,后经过网友留言和个人学习发现错误,原文还是保留,更改补在后面,不怕贻笑大方,唯恐误人子弟.不知道还能不能放在首页,让被误导的同学再被反误导一次. 一.原文 几 ...

  8. TCP协议三次握手、四次断开 过程分析

    建立TCP连接的过程需要进行三次信息交换,通常称为“三次握手”,示意图如下:

  9. 屏蔽ios7中某个页面的默认手势滑回返回

    - (void)viewWillDisappear:(BOOL)animated {[super viewWillDisappear:YES];self.navigationController.in ...

  10. boost::bind

    bind并不是一个单独的类或函数,而是非常庞大的家族,依据绑定的参数个数和要绑定的调用对象类型,总共有十个不同的形式,但它们的名字都叫bind. bind接受的第一个参数必须是一个可调用对象f,包括函 ...