一、Collections:集合框架的工具类,里面的方法都是静态的。
排序:方法可以List集合进行指定自然顺序的排序,所以List集合的对象要具备排序的功能,即实现Comparable接口。演示如下,
可以自定义该方法,如下所示
List里面的泛型不用?的原因:可以把?当成Object,只能调用Object类的方法。
根据比较器排序,这里讲解一个根据字符串长度排序。Collections类里面有这个方法
自定义该方法如下:
二分查找:
只能对List进行二分查找,演示如下:
使用二分搜索法搜索指定列表,以获得指定对象。在进行此调用之前,必须根据列表元素的自然顺序或者比较器对列表进行升序排序(通过 sort(List)
方法)。
如果没有对列表进行排序,则结果是不确定的,排序方式自己定义。
如果查找到了目标元素,则返回对应索引,没查到,则返回的值为应该在的索引值前加—,再减1。
最值:获取最大最小值,可以对List和Set集合使用。
前面一种是根据自然排序,后面一种是根据字符串的长度排序。
逆转:
reverseOrder方法可以将实现了自然排序的集合进行逆转,该方法原理如下,把位置换了一下,就实现了逆序。
如果自带比较器,也可以把实现了比较器的集合进行逆转。如下所示,根据长度逆转,
如果对Iist集合进行排序,可以先逆转,再排序。reverse方法。
替换:
其原理就是list.set(list.indexOf("zhaoliu"),"cendz")。
其他方法:
运行几次的结果都不一样,可以用来打乱顺序。比如洗扑克牌。
可以和枚举互换,因为老代码里面有枚举。
Vector集合是同步的,其他集合是非同步的,如果遇到了多线程怎么办?自己加锁。如何给非同步的集合加锁?
原文:https://www.cnblogs.com/cendz/p/10877598.html