List,Map,Set實現有序集合

2021-10-03 11:39:07 字數 3469 閱讀 5720

預設有序

list

list=

newarraylist()

;list.

add(

"0")

;list.

add(

"4")

;list.

add(

"2")

;list.

add(

"8")

;system.out.

println

(list.

tostring()

);

輸出結果為:[0, 4, 2, 8]

collections.sort(list): collections可提供為集合排序的方法

list

list=

newarraylist()

;list.

add(

"0")

;list.

add(

"4")

;list.

add(

"2")

;list.

add(

"8")

;collections.

sort

(list)

;system.out.

println

(list.

tostring()

);

輸出結果為:[0, 2, 4, 8]

list.sort()指定比較器進行排序

list

list=

newarraylist()

;list.

add(

"0")

;list.

add(

"4")

;list.

add(

"2")

;list.

add(

"8")

;list.

sort

(new

comparator

()})

;system.out.

println

(list.

tostring()

);

輸出結果為:[8, 4, 2, 0]

hashset實現類根據內部元素的hashcode值預設排序

set

set=

newhashset

<

>()

;set.

add(

"武漢");

set.

add(

"加油");

set.

add(

"中國");

set.

add(

"@@");

system.out.

println

(set.

tostring()

);

輸出結果為:[@@, 加油, 中國, 武漢]

linkedhashset可實現輸出順序為插入順序

set

set=

newlinkedhashset

<

>()

;set.

add(

"c")

;set.

add(

"i")

;set.

add(

"o")

;set.

add(

"a")

;system.out.

println

(set.

tostring()

);

輸出結果為:[c, i, o, a]

treeset實現了sortedset介面,可對其存值做排序(要求集合元素可比較的)

set

set=

newtreeset

<

>()

;set.

add(

"武漢");

set.

add(

"加油");

set.

add(

"中國");

set.

add(

"@@");

system.out.

println

(set.

tostring()

);

輸出結果為:[@@, 中國, 加油, 武漢]

也可指定比較器進行比較

set

set=

newtreeset

<

>

(new

comparator

()})

;set.

add(

"武漢");

set.

add(

"加油");

set.

add(

"中國");

set.

add(

"@@");

system.out.

println

(set.

tostring()

);

輸出結果為:[武漢, 加油, 中國, @@]

linkedhashmap輸出順序為插入順序

map

map=

newlinkedhashmap

<

>()

;map.

put(

"中國"

,"加油");

map.

put(

"盂縣"

,"加油");

map.

put(

"山西"

,"加油");

map.

foreach

((k,v)

->

);

輸出結果為:k->中國v->加油k->盂縣v->加油k->山西v->加油

treemap實現了sortedmap介面,可根據鍵的自然大小排序

map

map=

newtreemap

<

>

(new

comparator

()})

;map.

put(

"中國"

,"加油");

map.

put(

"盂縣"

,"加油");

map.

put(

"山西"

,"加油");

map.

foreach

((k,v)

->

);

輸出結果為:k->盂縣v->加油k->山西v->加油k->中國v->加油

redis實現有序的訊息佇列

redis是什麼東西就不多說了,網上文章一搜一大堆。首先來說一下我要實現的功能 類似乙個訊息中轉站吧,如果有人要傳送訊息,先將訊息發到我這裡來,然後我這邊進行 為的就是有乙個統一的管理和修改時方便,而且所有的訊息有優先順序,也會有定時傳送 如果同一時間訊息過多,則會有延遲 思路 首先乙個是將這兩個分...

C語言實現有序表

include include define list init size 80 define listincreament 10 define error 0 錯誤的時候的定義 define ok 1 正確的定義 define overrlow 2 typedef struct sllist sq...

單鏈表實現有序多項式加法

原理講解 使用鍊錶表示一元多項式 設多項式pn x a0 a1x a2x2 an xn其中ai i 0,1,2,n 是x的i次冪 的係數。在計算機中可使用乙個結點存放多項式的一項。如果採用順序儲存結構來儲存此線性表,由於多項式中可能有多項的係數為0,順序儲存就會浪費大量儲存空間。故應採用單鏈表來儲存...