Java中 Collection 和 Collections
1、java.util.Collection是一个集合接口,它提供了对集合对象进行基本操作的通用接口方法。Collection是List接口和Set接口的父接口,通常情况下不直接使用,继承关系如下。
Collection
|-List
| |-LinkedList
| |-ArrayList
|_Set
| |-HashSet
| |-TreeSet
+ List接口允许存放重复的对象,排序方式为按照对象插入顺序,Set接口不允许存放重复的对象,排序方式按照自身内部的排序规则。
+ Map接口同Collection接口,也是java.util中常用的集合类,Map接口以键值对(key-value)的形式存放对象,其中键(Key)对象不可以重复,值(value)对象可以重复,排序方式按照自身内部的排序规则
2、Collections 是一个集合框架的帮助类,里面包含一些对集合的排序,搜索以及序列化的操作,Collections不可以被实例化,就像一个工具类,服务于Java的Collection。
import java.util.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
/**
*测试
*/
public class Test {
public static void main(String[] args) throws IOException {
new Test().test();
}
}
private void test() {
Map<String, Integer> map = new HashMap<String,Integer>();
map.put("zs",7);
map.put("ls",1);
map.put("ww",9);
ArrayList<Entry<String,Integer>> list = new ArrayList<Entry<String,Integer>>(map.entrySet());
Collections.sort(list,new Comparator<Entry<String,Integer>>() {
public int compare(Entry<String,Integer> o1,Entry<String,Integer> o2) {
return o1.getValue()-o2.getValue();
}
});
for(Entry<String,Integer> entry:list) {
System.out.println(entry.getKey()+"=>"+entry.getValue());
}
}