當前位置:首頁 » 編程語言 » java的set集合

java的set集合

發布時間: 2022-11-19 14:07:51

1. java set集合不可重復的意思

set 的equals是內容相等.
如果沒有重寫過的equals就是HashCode值相等,可以理解為地址.
重寫過的,就要看對應的equals方法的說明了,根據實際用途來做,一般都是跟內容有關

2. java中Set集合可以允許有多個空值嗎

不可以 ,api上set定義:

一個不包含重復元素的 collection。更確切地講,set 不包含滿足 e1.equals(e2) 的元素對

e1 和 e2,並且最多包含一個 null 元素。

3. 在java中,set集合和list集合有什麼相同點和不同點

在網上看到一點,可能對你有所幫助
Set(集合):
Set是最簡單的一種集合。集合中的對象不按特定的方式排序,並且沒有重復對象。
Set介面主要實現了兩個實現類:
HashSet:HashSet類按照哈希演演算法來存取集合中的對象,存取速度比較快
TreeSet:TreeSet類實現了SortedSet介面,能夠對集合中的對象進行排序。
Set的用法:
存放的是對象的引用,沒有重復對象
Setset=newHashSet();
Strings1=newString("hello");
Strings2=s1;
Strings3=newString("world");
set.add(s1);
set.add(s2);
set.add(s3);
System.out.println(set.size());//列印集合中對象的數目為2。
Set的add()方法是如何判斷對象是否已經存放在集合中?
booleanisExists=false;
Iteratoriterator=set.iterator();
while(it.hasNext()){
StringoldStr=it.next();
if(newStr.equals(oldStr)){
isExists=true;
}
}
List(列表):
List的特徵是其元素以線性方式存儲,集合中可以存放重復對象。
List介面主要實現類包括:
ArrayList():代表長度可以改變得數組。可以對元素進行隨機的訪問,向ArrayList()中插入與
與刪除元素的速度慢。
LinkedList():在實現中採用鏈表數據結構。插入和刪除速度快,訪問速度慢。
對於List的隨機訪問來說,就是只隨機來檢索位於特定位置的元素。
List的get(intindex)方法放回集合中由參數index指定的索引位置的對象,下標從「0」開始。
最基本的兩種檢索集合中的所有對象的方法:1:用for循環和get()方法:
for(inti=0;i<LIST.SIZE();I++){<P>
System.out.println(list.get(i));
}
2:使用迭代器(Iterator):
Iteratorit=list.iterator();
while(it.hashNext){
System.out.println(it.next);
}

4. java中怎麼往集合類set里添加數據

兩種向Set中添加元素的方法,第一種是使用add()方法,每次添加一個元素到set中,當集合中不存在相同元素時將添加到集合中,並返回true,當集合中存在元素時,返回false。代碼如下:

Set<String> sets = new HashSet<>();
sets.add("String");
System.out.println(sets.add("Tree"));
System.out.println(sets.add("String"));
List<String> lists = new LinkedList<>();
lists.add("test");
lists.add("test");
lists.add("one");
System.out.println(sets.addAll(lists));

還有一個是向集合中批量添加元素的方法addAll(),這個方法的入參是Colletion。上述代碼執行結果如下:

擴展知識

Set集合可以知道某物是否已近存在於集合中,不會存儲重復的元素,注重獨一無二的性質,用於存儲無序(存入和取出的順序不一定相同)元素,值不能重復。可以很好地作為排重時使用的數據結構,但要注意集合內部數據一般情況沒有順序。常用的set有HashSet和TreeSet。

TreeSet是JAVA中集合的一種,TreeSet 是一個有序的集合,它的作用是提供有序的Set集合。它繼承於AbstractSet抽象類,實現了NavigableSet<E>,Cloneable,java.io.Serializable介面。一種基於TreeMap的NavigableSet實現,支持2種排序方式:自然排序或者根據創建TreeSet 時提供的 Comparator 進行排序。

5. Java中Set集合怎樣用for遍歷

set是要用迭代器訪問。迭代器好比一個指向元素之間的指針,每移動一次,就指向下一個元素。
迭代器英文叫做Iterator。set有iterator方法,傳給迭代器對象進行迭代。
示例如下:
package cn.util;

import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;

public class SetDemo {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Set set=new HashSet();
List list=new LinkedList();
list.add("1");
list.add("2");
set.add(list);
list=new LinkedList();
list.add("1");
list.add("2");
set.add(list);
set.add("a");
set.add("b");
set.add("a");
Iterator it= set.iterator();
while(it.hasNext())
{
Object ob=it.next();
if(ob instanceof List)
{
System.out.println(ob+" "+"true");
}
else{
System.out.println(ob+" "+"false");
}

}
System.out.println(set.size());

}

}

6. java 集合set類中是如何實現數據不能重復的

Set 有個 add 方法是將元素添加到 Set 中,以 HashSet 為例。

publicbooleanadd(Ee){
returnmap.put(e,PRESENT)==null;
}

可以看到,HashSet 底層的數據結構是一個HashMap<E,Object> ,將 e 作為 HashMap 的 key 保存的。而 HashMap 的底層數據結構是 HashTable ,根據 HashMap 的 key 的HashCode 去 HashTable (具體實現是數組+鏈表) 里找到元素的位置。如果同一個對象(使用equals 來比較兩個對象是否相同,具體是比較對象的 hashCode() 是否相同) 往Set 里放,最終放到 HashTable 的位置是相同的。具體判斷Set 是否包含某個對象,調用的是Set的contains(Object o) 方法,它內部也是通過計算 o 的hashCode 去查找該元素是否存在的。

如果題主是新學習Java的同學,建議重點學習一下常用集合的數據結構,對於掌握Java這門語言非常有幫助。

7. 怎樣從java集合類set中取出數據

創建set的iterator方法:

Set<Object> set = new HashSet<Object>();

Iterator<Object> it = set.iterator();

while(it.hasNext())//判斷是否有下一個

it.next()取出元素。

以上方法便是從Set集合中取出數據。

(7)java的set集合擴展閱讀:

Java中使用Set介面描述一個集合(集合不允許有「重復值」,注意重復的概念),集合Set是Collection的子介面,Set不允許其數據元素重復出現,也就是說在Set中每一個數據元素都是唯一的。Set介面定義的常用方法如下:

1、size() 獲取Set尺寸(即Set包含數據元素的總數)。

2、 add(Object obj) 向Set中添加數據元素obj。

3、remove(Object obj) 從Set中移除數據元素obj。

4 、contains(Object obj) 判斷當前Set中是否包含數據元素obj,如果包含返回true,否則返回false。

5、iterator() 將Set裝入迭代器。

8. java集合set有哪些方法

set是一個介面,一般實現類用HashSet

方法摘要

boolean add(E e)
如果 set 中尚未存在指定的元素,則添加此元素(可選操作)。
boolean addAll(Collection<? extends E> c)
如果 set 中沒有指定 collection 中的所有元素,則將其添加到此 set 中(可選操作)。
void clear()
移除此 set 中的所有元素(可選操作)。
boolean contains(Object o)
如果 set 包含指定的元素,則返回 true。
boolean containsAll(Collection<?> c)
如果此 set 包含指定 collection 的所有元素,則返回 true。
boolean equals(Object o)
比較指定對象與此 set 的相等性。
int hashCode()
返回 set 的哈希碼值。
boolean isEmpty()
如果 set 不包含元素,則返回 true。
Iterator<E> iterator()
返回在此 set 中的元素上進行迭代的迭代器。
boolean remove(Object o)
如果 set 中存在指定的元素,則將其移除(可選操作)。
boolean removeAll(Collection<?> c)
移除 set 中那些包含在指定 collection 中的元素(可選操作)。
boolean retainAll(Collection<?> c)
僅保留 set 中那些包含在指定 collection 中的元素(可選操作)。
int size()
返回 set 中的元素數(其容量)。
Object[] toArray()
返回一個包含 set 中所有元素的數組。
<T>
T[] toArray(T[] a)
返回一個包含此 set
中所有元素的數組;返回數組的運行時類型是指定數組的類型。

9. JAVA裡面set,map,list的區別是什麼(盡量詳細)

java集合的主要分為三種類型:

  • Set(集)

  • List(列表)

  • Map(映射)

  • 要深入理解集合首先要了解下我們熟悉的數組:

    數組是大小固定的,並且同一個數組只能存放類型一樣的數據(基本類型/引用類型),而JAVA集合可以存儲和操作數目不固定的一組數據。 所有的JAVA集合都位於 java.util包中! JAVA集合只能存放引用類型的的數據,不能存放基本數據類型。

    簡單說下集合和數組的區別:(參考文章:《Thinking In Algorithm》03.數據結構之數組)

Java所有「存儲及隨機訪問一連串對象」的做法,array是最有效率的一種。

1、
效率高,但容量固定且無法動態改變。
array還有一個缺點是,無法判斷其中實際存有多少元素,length只是告訴我們array的容量。

2、Java中有一個Arrays類,專門用來操作array。
arrays中擁有一組static函數,
equals():比較兩個array是否相等。array擁有相同元素個數,且所有對應元素兩兩相等。
fill():將值填入array中。
sort():用來對array進行排序。
binarySearch():在排好序的array中尋找元素。
System.array():array的復制。

若撰寫程序時不知道究竟需要多少對象,需要在空間不足時自動擴增容量,則需要使用容器類庫,array不適用。所以就要用到集合。

那我們開始討論java中的集合。

集合分類:

Collection:List、Set
Map:HashMap、HashTable

熱點內容
android文件圖片 發布:2025-01-15 17:39:44 瀏覽:205
linux的路徑怎麼寫 發布:2025-01-15 17:18:49 瀏覽:185
php解壓程序 發布:2025-01-15 17:06:22 瀏覽:142
刷助力腳本 發布:2025-01-15 17:02:31 瀏覽:520
c盤里的用戶文件夾可以刪除 發布:2025-01-15 16:56:45 瀏覽:951
虛幻4編譯到哪裡 發布:2025-01-15 16:50:19 瀏覽:756
透明度漸變android 發布:2025-01-15 16:45:08 瀏覽:835
dos連接oracle資料庫 發布:2025-01-15 16:41:39 瀏覽:906
網路配置比較低怎麼做 發布:2025-01-15 16:35:38 瀏覽:362
android彈出鍵盤監聽 發布:2025-01-15 16:35:11 瀏覽:208