基礎資料結構之TreeMap原始碼分析

2021-08-13 13:59:05 字數 1540 閱讀 9939

1.treemap資料結構屬於紅黑樹,紅黑樹是自平衡二叉樹

treemap節點原始碼

static final class entryimplements map.entry

2.向treemap中新增元素

原始碼分析

public v put(k key, v value) 

int cmp;

entryparent;

// split comparator and comparable paths

comparator<? super k> cpr = comparator;//comparator是構造傳入的比較器

if (cpr != null) while (t != null);

}else while (t != null);

}entrye = new entry(key, value, parent);

if (cmp < 0)

parent.left = e;

else

parent.right = e;

fixafterinsertion(e);

size++;

modcount++;

return null;

}

3.使用**例項

3.1未傳入比較器

public class treemapdemo 	}	

public static void main(string args)

}

未傳入comparator比較器,採用key.compareto()方法比較,輸出結果:

key:a value:1

key:b value:2

key:c value:3

key:d value:4

key:e value:5

3.2傳入比較器demo例項

treemapmmap = new treemap(new comparator() 

});mmap.put("a", 1);

mmap.put("e", 5);

mmap.put("d", 4);

mmap.put("c", 3);

mmap.put("b", 2);

for(entryentry : mmap.entryset())

輸出結果:

key:e value:5

key:d value:4

key:c value:3

key:b value:2

key:a value:1

TreeMap資料結構 jdk8

treemap使用了紅黑樹的結構,看下原始碼,記錄用。public v put k key,v value 比較結果 int cmp 父節點 entryparent comparator cpr comparator 從root開始,用key和節點的key進行比較,小的找左樹,大的找右樹,相同就賦值...

資料結構之基礎

在學習簡單的資料結構之前我們得了解一下資料結構的一些基本概念 一 邏輯結構 集合 資料元素間除 同屬於乙個集合 外,無其他關係 線性結構 乙個對乙個,如線性表,棧,佇列 樹形結構 乙個對多個,如樹 圖形結構 多個對多個,如圖 二 物理結構 物理結構也稱儲存結構,是資料的邏輯結構在計算機儲存內的表示 ...

資料結構基礎之串

串 串是由零個或多個字元組成的有限序列,又叫字串 string 串中的字元數目n稱為串的長度,零個字元的串稱為空串 null string 它的長度為零,可以直接用 表示。一些概念 空格串,是只包含空格的串。主要注意它與空串的區別,空格串是有內容長度的,而且可以不止乙個空格。子串與主串,串中任意個數...