实现集合的多线程同步
import java.util.*;
public class Test {
public static void main(String[] args) {
// 下面程序创建了四个同步的集合对象
Collection<String> c = Collections.synchronizedCollection(new ArrayList<String>());
List<String> list = Collections.synchronizedList(new ArrayList<String>());
Set<String> s = Collections.synchronizedSet(new HashSet<String>());
Map<String, Integer> m = Collections.synchronizedMap(new HashMap<String, Integer>());
}
}
Sort方法
对List子类(ArrayList、LinkedList等
)进行排序
import java.util.List;
class Collections {
static <T extends Comparable<? super T> > void sort(List<T> list) {
}
}
Comparable<? super T> 可以传T的父类,子类比较时可以使用父类的比较方法
<T extends Comparable.... > T必须是基础 可比较接口 才能进行比较
reverseOrder
原比较器:字符串按长度从小到大排序放入TreeSet,长度相等的话字典序小的排在前面
现在需要按照元比较器相反的方向排序集合数据
package test;
import java.util.*;
class LenComparator implements Comparator<String> {
@Override
public int compare(String o1, String o2) {
if(o1.length() > o2.length()) return 1;
if(o1.length() == o2.length())
return o1.compareTo(o2);
return -1;
}
}
public class Test {
public static void main(String[] args) {
//****** Collections.reverseOrder(...);
TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder(new LenComparator()));
ts.add("abc");
ts.add("1233333");
ts.add("b");
ts.add("a");
ts.add("11");
for(String tmp : ts) {
System.out.println(tmp);
}
}
}
binarySearch
对List子类(ArrayList、LinkedList等)进行二分查找
max min
对List子类(ArrayList、LinkedList等)取最值