天天看點

java list換行符_java集合-set

java集合-set

Map用于存儲key-value的映射,其中key的值是不能重複的。并且還需要正确的覆寫equals方法和hashCode方法

如果我們隻需要存儲不重複的key,并不需要存儲對應的value值,就可以使用set

set用于存儲不重複的元素集合,主要提供以下幾種方法:

将元素添加進Set:boolean add(E e)

将元素從Set删除:boolean remove(Object e)

判斷是否包含元素:boolean contains(Object e)

1. Set實際上相當于隻存儲key、不存儲value的Map。我們經常用Set用于去除重複元素

2. 原因是:set中的key和map中的key一樣,都需要嚴格的實作equals和hashCode方法,否則無法正确方法set元素

3. Set接口并不保證有序,而SortedSet接口則保證元素是有序的:

* HashSet是無序的,因為它實作了Set接口,并沒有實作SortedSet接口;

* TreeSet是有序的,因為它實作了SortedSet接口。

java list換行符_java集合-set

hashSet的輸出:

public class Main {

public static void main(String[] args) {

Set set = new HashSet<>();

set.add("apple");

set.add("banana");

set.add("pear");

set.add("orange");

for (String s : set) {

System.out.println(s);

}

}

}

周遊TreeSet時,輸出就是有序的,這個順序是元素的排序順序:

public class Main {

public static void main(String[] args) {

Set set = new TreeSet<>();

set.add("apple");

set.add("banana");

set.add("pear");

set.add("orange");

for (String s : set) {

System.out.println(s);

}

}

}

Queue

隊列Queue實作了一個先進先出(FIFO)的資料結構:

通過add()/offer()方法将元素添加到隊尾;

通過remove()/poll()從隊首擷取元素并删除;

通過element()/peek()從隊首擷取元素但不删除。

要避免把null添加到隊列。

java list換行符_java集合-set