treemap反序輸出 逆序輸出 輸出倒數幾個值

treemap是按鍵的ASCII碼從小到大排序的,比如要對若干個帶有時間屬性的對象排序時,可以用時間作鍵,放到Treemap中,即是有序集合了.先不管性能,省了很多自己寫排序的實現了.

默認是按key的ASCII碼順序由小到大排序的,如果要實現自定義的排序,則要重寫treemap的比較器.

最簡單的方法就是使用集合對象自帶的方法,Collections.reverseOrder()

具體代碼如下

package com.example.commonwtf2.test;

import java.util.Collections;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

import org.junit.Test;

public class ExerciseTreeMap {

	/**
	 * @see: 反序輸出treemap
	 * */
	@Test 
	public void outputTreeMap(){
		Map<Long, Long> tMap = new TreeMap<>();
		for(long i=0;i<40;i++){
			tMap.put(i, i);
		}
		int i=0;
		Set<Long> longSet = new HashSet<>();
		
		for (long key : tMap.keySet()) {
			
			if (i<20) {
				System.out.println(key +";"+tMap.get(key));
			}
			i++;
		}
		System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~```");
		Map<Long, Long> tMapRever = new TreeMap<>(Collections.reverseOrder());
		tMapRever.putAll(tMap);
		i=0;
		for (long key : tMapRever.keySet()) {
			
			if (i<20) {
				System.out.println(key +";"+tMapRever.get(key));
			}
			i++;
		}

	}
}

輸出結果

0;0
1;1
2;2
3;3
4;4
5;5
6;6
7;7
8;8
9;9
10;10
11;11
12;12
13;13
14;14
15;15
16;16
17;17
18;18
19;19
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~```
39;39
38;38
37;37
36;36
35;35
34;34
33;33
32;32
31;31
30;30
29;29
28;28
27;27
26;26
25;25
24;24
23;23
22;22
21;21
20;20

這樣就實現了treemap的反序輸出,逆序輸出,輸出倒數幾行等.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章