Java集合框架Collections原理及用法实例
Collections工具类
Java里关于聚合的工具类,包含有各种有关集合操作的静态多态方法,不能实例化(把构造函数私有化)
publicclassCollections{
//Suppressesdefaultconstructor,ensuringnon-instantiability.
privateCollections(){
}
}
和Collection的区别
- Collection是接口,提供了对集合对象进行基本操作的通用接口方法,List、Set等多种具体的实现类
- Collection是工具类,专门从操作Collection接口实现类里面的元素
常见方法
排序
Sort(Listlist)
按自然排序的升序排序
publicstaticvoidmain(String[]args){
Listlist=newArrayList<>();
list.add("aaaa");
list.add("zzz");
list.add("gggg");
System.out.println(list);
Collections.sort(list);
System.out.println(list);
}
自定义排序规则
Sort(Listlist,Comparatorc),由Comparator控制排序逻辑
publicstaticvoidmain(String[]args){
Listlist=newArrayList<>();
list.add("aaaa");
list.add("zzz");
list.add("gggg");
System.out.println(list);
//默认升序
Collections.sort(list,Comparator.naturalOrder());
System.out.println(list);
//降序
Collections.sort(list,Comparator.reverseOrder());
System.out.println(list);
}
随机排序
shuffle(Listlist)
publicstaticvoidmain(String[]args){
Listlist=newArrayList<>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
list.add("6");
list.add("7");
list.add("8");
list.add("9");
list.add("10");
list.add("J");
list.add("Q");
list.add("K");
System.out.println(list);
Collections.shuffle(list);
System.out.println(list);
}
获取最值元素
max(Collectioncoll)#
默认比较,不适合对象比较
max(Collectioncoll,Comparatorcomparator)#
Student.java
packagecom.cyb.test;
classStudent{
publicStudent(Stringname,intage){
this.name=name;
this.age=age;
}
privateintage;
privateStringname;
publicvoidsetAge(intage){
this.age=age;
}
publicintgetAge(){
returnage;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetName(){
returnname;
}
@Override
publicStringtoString(){
return"Student{"+"age="+age+",name='"+name+'\''+'}';
}
}
Test03.java
packagecom.cyb.test;
importjava.util.ArrayList;
importjava.util.Collections;
importjava.util.Comparator;
importjava.util.List;
publicclasstest03{
publicstaticvoidmain(String[]args){
Listlist=newArrayList<>();
list.add(newStudent("jack",26));
list.add(newStudent("tom",29));
list.add(newStudent("mary",32));
list.add(newStudent("tony",19));
list.add(newStudent("smith",41));
System.out.println(list);
StudentmaxAgeStudent=Collections.max(list,newComparator(){
@Override
publicintcompare(Studento1,Studento2){
returno1.getAge()-o2.getAge();
}
});
System.out.println("maxAgeStudent="+maxAgeStudent.toString());
StudentmixAgeStudent=Collections.min(list,newComparator(){
@Override
publicintcompare(Studento1,Studento2){
returno1.getAge()-o2.getAge();
}
});
System.out.println("mixAgeStudent="+mixAgeStudent.toString());
}
}
创建不可变集合unmodifiablleXXX()
Listlist=newArrayList<>(); list.add("SpringBoot课程"); list.add("架构课程"); list.add("微服务SpringCloud课程");//设置为只读List集合 list=Collections.unmodifiableList(list); System.out.println(list); Set set=newHashSet<>(); set.add("Mysql教程"); set.add("Linux服务器器教程"); set.add("Git教程"); //设置为只读Set集合 set=Collections.unmodifiableSet(set); System.out.println(set); Map map=newHashMap<>(); map.put("key1","课程1"); map.put("key2","课程2"); //设置为只读Map集合 map=Collections.unmodifiableMap(map); System.out.println(map);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。