1、java.util Class Collections:
集合的工具类,定义有许多静态方法,可以对集合进行一些常用的操作;
添加元素:c.addAll(Collection<? super T> c, T..elements);
打乱集合排序:c.shuffle(List<T> list);
集合排序:c.sort(List<T> list):需要该集合满足实现接口Comparable,该接口会定义一个抽象方法:int compareTo(T o),因此我们可以重写该集合实现类的compareTo();这种为了满足业务使用的API而需要修改其他地方的代码,具有了代码的侵入性,不利于后期维护;
为了减少代码的侵入性,可以使用comparator接口,该接口称为比较器,它定义了compare()方法,我们可以重写该比较器,并把重写后的比较器传入sort()里,这种方法的侵入性较弱;
List<Point> list1 = new ArrayList<>();
list1.add(new Point(1,2));
list1.add(new Point(3,2));
list1.add(new Point(4,2));
list1.add(new Point(55,2));
list1.add(new Point(6,2));
list1.add(new Point(7,2));
/*
Collections.sort(list1);
该方法只能比较实现了Comparable接口,并重写了compareTo才能作比较
侵入性:当使用API时,如果反过来要求我们为其修改其他地方的代码,不利于程序后期维护
*/
/*
Comparator<Point> c = (o1, o2) -> {
int num1 = o1.getX()*o1.getX()+o1.getY()*o1.getY();
int num2 = o2.getX()*o2.getX()+o2.getY()*o2.getY();
return num2-num1;
};
*/
Collections.sort(list1,( o1, o2) ->
o2.getX()*o2.getX()+o2.getY()*o2.getY() -o1.getX()*o1.getX()-o1.getY()*o1.getY());
System.out.println(list1);
2、java.util Interface Map:
查找表,体现的结构是一个多行两列的表格,左列称为key,右列称为valu;在Map中总是以key-value对的形式保存数据,并根据key提取value;
常用的实现类:java.util.HashMap散列表(哈希表):使用散列算法实现Map,当今查询速度最快的数据结构,在缓存中被大量使用;