java entry

我希望要一个ArrayList,类似C++中的pair,

但是Map.Entry是个接口,不能实例化,可以像下面这样写


HashMap G = new HashMap();
G.put(1, 9); G.put(4, 6); G.put(2, 8);G.put(3, 7);    
ArrayList> arrayList = new 
        ArrayList(G.entrySet());

ArrayList> arrayList = new 
    ArrayList>();
arrayList.add(new AbstractMap.SimpleEntry(1, 9));

Map map = new HashMap();
map.put("d", 2);
map.put("c", 1);
map.put("b", 1);
map.put("a", 3);

List> infoIds =
    new ArrayList>(map.entrySet());

//排序前
for (int i = 0; i < infoIds.size(); i++) {
    String id = infoIds.get(i).toString();
    System.out.println(id);
}
//d 2
//c 1
//b 1
//a 3

//排序
Collections.sort(infoIds, new Comparator>() {   
    public int compare(Map.Entry o1, Map.Entry o2) {      
        //return (o2.getValue() - o1.getValue()); 
        return (o1.getKey()).toString().compareTo(o2.getKey());
    }
}); 

//排序后
for (int i = 0; i < infoIds.size(); i++) {
    String id = infoIds.get(i).toString();
    System.out.println(id);
}
//根据key排序
//a 3
//b 1
//c 1
//d 2
//根据value排序
//a 3
//d 2
//b 1
//c 1


List> termls = new ArrayList>();
			for(String s: tf.get(i).keySet()) {
				termls.add(new AbstractMap.SimpleEntry(s, tf.get(i).get(s)*1.0*Math.log10(count*1.0/df.get(s))));
			}
			Collections.sort(termls, new Comparator>(){
				public int compare(Map.Entry o1,Map.Entry o2){
					return(o2.getValue().compareTo(o1.getValue()));
				}
				
			}
			);
			System.out.println("line " + (i+1));
			for (int ind = 0; ind < termls.size(); ++ind){
				System.out.print(termls.get(ind).toString()+"  ");
			}
			System.out.println();


你可能感兴趣的:(java)