Collection TreeMap traversal and sorting by key and value

TreeMap traversal

public class Eee {
	 public static void main(String[] args) {
	        TreeMap<String, Integer> treeMap = new TreeMap<>();
	        treeMap.put("s", 2);
	        treeMap.put("w", 3);
	        treeMap.put("d", 1);
	        treeMap.put("f", 0);
	        treeMap.put("h", 9);
	        treeMap.put("q", 11);
	        treeMap.put("a", 25);
	        //traverse 1
	        System.out.println("====================== Traverse one =================== =====");
	        Iterator<String> it1 = treeMap.keySet().iterator();
	        while(it1.hasNext()){
	        	String key = it1.next();
	        	Integer value = treeMap.get(key);
	        	System.out.println("key=" + key + " ; " + "value=" + value);
	        }
	        
	        //traverse two
	        System.out.println("====================== Traversal two =================== =====");
	        Iterator<Entry<String, Integer>> it2 = treeMap.entrySet().iterator();
	        while(it2.hasNext()) {
	        	Entry<String, Integer> entry = it2.next();
	        	String key = entry.getKey();
	        	Integer value = entry.getValue();
	        	System.out.println("key=" + key + " ; " + "value=" + value);
	        }
	    }
}
======================= Traverse a =========================
key=a ; value=25
key=d ; value=1
key=f ; value=0
key=h ; value=9
key=q ; value=11
key=s ; value=2
key=w ; value=3
======================= Traversal two =========================
key=a ; value=25
key=d ; value=1
key=f ; value=0
key=h ; value=9
key=q ; value=11
key=s ; value=2
key=w ; value=3

TreeMap is sorted by key

    Same below

TreeMap is sorted by value

public class Eee {
	public static void main(String[] args) {
		TreeMap<String, Integer> treeMap = new TreeMap<>();
		treeMap.put("s", 2);
		treeMap.put("w", 3);
		treeMap.put("d", 1);
		treeMap.put("f", 0);
		treeMap.put("h", 9);
		treeMap.put("q", 11);
		treeMap.put("a", 11);

		//treeMap in put(), the bottom layer will compareTo according to the key ascending order
		System.out.println("treeMap = " + treeMap);
		
		// sort by value
		List<Map.Entry<String, Integer>> entryArrayList1 = new ArrayList<>(treeMap.entrySet());
		Collections.sort(entryArrayList1, Comparator.comparing(Map.Entry::getValue));
		System.out.println("entryArrayList1=" + entryArrayList1);

		// Sort two by value
		List<Map.Entry<String, Integer>> entryArrayList2 = new ArrayList<>(treeMap.entrySet());
		Collections.sort(entryArrayList2, (o1, o2) -> o1.getValue().compareTo(o2.getValue()));
		System.out.println("entryArrayList2=" + entryArrayList2);
		// Sort three by value
		List<Map.Entry<String, Integer>> entryArrayList3 = new ArrayList<>(treeMap.entrySet());
		Collections.sort(entryArrayList3, new Comparator<Map.Entry<String, Integer>>() {
			@Override
			public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
				return o1.getValue().compareTo(o2.getValue());
			}
		});
		System.out.println("entryArrayList3=" + entryArrayList3);
		//The sorting in treeMap has not changed, it has become just an Arraylist with treeMap installed
		System.out.println("treeMap = " + treeMap);
	}
}
treeMap = {a=11, d=1, f=0, h=9, q=11, s=2, w=3}
entryArrayList1=[f=0, d=1, s=2, w=3, h=9, a=11, q=11]
entryArrayList2=[f=0, d=1, s=2, w=3, h=9, a=11, q=11]
entryArrayList3=[f=0, d=1, s=2, w=3, h=9, a=11, q=11]
treeMap = {a=11, d=1, f=0, h=9, q=11, s=2, w=3}


Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325855635&siteId=291194637