導航:首頁 > 編程語言 > javaset取元素

javaset取元素

發布時間:2022-12-08 17:45:52

A. 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 進行排序。

B. java中從hashset中取元素

package test;

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

public class Func{
//我假定是String類型的
public static Set<String> set = new HashSet<String>();
public static void main(String[] args){
add();
show();
}
public static void add(){
set.add("小白");
set.add( "java");
}
public static void show(){
//迭代的方法
Iterator it = set.iterator();
//這個set是否有下一個
while(it.hasNext()){
//有就把下一個取出來
String str = (String) it.next();
System.out.println(str);
}
}
}

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

用循環或者迭代器

創建set的iterator
Set<Object> set = new HashSet<Object>();
Iterator<Object> it = set.iterator();
while(it.hasNext())//判斷是否有下一個
it.next()取出元素
======================================
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

class ADD{
public String a;

public static void main(String[] args) {
ADD a = new ADD();
a.a = "a";
ADD b = new ADD();
b.a = "b";
Set<ADD> set = new HashSet<ADD>();
set.add(a);
set.add(b);
Iterator<ADD> it = set.iterator();
while(it.hasNext()){
System.out.println(((ADD)it.next()).a);
}
}
}

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

一般是通過迭代期獲取數據,因為set集合無序,所以輸出不是順序輸出

importjava.util.HashSet;
importjava.util.Iterator;
importjava.util.Set;

publicclassTest{
publicstaticvoidmain(String[]args){
//初始化set集合
Set<String>set=newHashSet<>();
set.add("1");
set.add("2");
set.add("3");
//獲取set集合數據
for(Iteratoriterator=set.iterator();iterator.hasNext();){
Stringstring=(String)iterator.next();
System.out.println(string);
}

}
}

E. java set有get方法嗎

你想問的應該是:java.util.Set 有沒有像 list 一樣的get方法吧?
答案是沒有;
List特點:元素有放入順序,元素可重復
Set特點:元素無放入順序,元素不可重復
List的get方法需要下標,其實也就是放入順序,由於Set沒有放入順序,所以這應該就是沒有給Set設計get方法的原因吧
(擴展:在Set中的位置是由元素的HashCode決定的,位置其實是固定的)

要取Set的值,一般是用iterator() 方法獲取迭代器進行操作,也可以用toArray()方法轉成數組來操作。

F. 為什麼Set及子類中沒有提供隨機取元素的方法

1.可以用Set的一下兩個方法獲取可以隨機訪問的數組:

引用
Object[] toArray()
返回一個包含 set 中所有元素的數組。
<T> T[]
toArray(T[] a)
返回一個包含 set 中所有元素的數組;返回數組的運行時類型是指定數組的類型。

2.可以繼承HashSet,使用復合數據結構:
Java代碼 收藏代碼
import java.util.ArrayList;
import java.util.HashSet;

public class ArraySet<E> extends HashSet<E> {

private static final long serialVersionUID = -7548294595221509577L;
private ArrayList<E> list = new ArrayList<E>();

/**
* @param index
* @return
* @see java.util.ArrayList#get(int)
*/
public E get(int index) {
return list.get(index);
}

@Override
public boolean add(E o) {
if (super.add(o)) {
list.add(o);
return true;
} else
return false;
}

@Override
public boolean remove(Object o) {
if (super.remove(o)) {
list.remove(o);
return true;
} else
return false;
}

@Override
public void clear() {
super.clear();
list.clear();
}

}

G. java裡面的集合框架的set用法應該怎麼做

1、Set:它是無序、不重復、該介面中的方法和Collection介面中的方法一致。

繼承它的子類有HashSet和TreeSet。

根據元素的兩個方法來完成的,一個是HashCode、一個是equals方法,只有當hashCode方法算出哈希值相同時,會再次判斷兩個元素的equals方法是否為true,如果是true說明兩個元素相同,不存儲,所以往hashSet集合中存儲自定義對象時,要覆蓋hashCode,equals方法,通過自定義對象具備的特有數據定義hashCode、equals的具體實現。

它保證元素的唯一性,就是通過元素對象的比較方法返回值來確定的,如果為0,則視為兩個元素時相同的元素,不存儲。

treeset的兩種排序方式:

1、讓元素自身具備比較功能,就是強制讓元素類去實現comparable介面,覆蓋compareTo方法,這時元素具備的自然排序,可是如果元素自身不具備比較功能,獲取具備的比較功能不是所需要的,這時排序方式就不能用了。

2、讓集合自身具備比較功能,需要定義比較器,其實就實現了comparetor介面的子類對象作為參數傳遞給treeSet集合的構造函數,讓treeSet集合一創建就具備了比較功能,該子類必須要覆蓋compare方法。

閱讀全文

與javaset取元素相關的資料

熱點內容
腳本提取源碼器 瀏覽:928
smo源碼 瀏覽:875
為什麼要搭建單獨伺服器 瀏覽:478
編譯器有什麼控制 瀏覽:891
希爾伯特pdf 瀏覽:645
php數組全數字 瀏覽:645
解密塔羅牌小程序源碼 瀏覽:862
聚合跑分源碼 瀏覽:553
注冊dns伺服器寫什麼 瀏覽:879
linux安裝deb包 瀏覽:521
電腦盤文件夾如何平鋪 瀏覽:267
相機卡滿了沒文件夾 瀏覽:751
如何批量快速壓縮視頻 瀏覽:432
我的世界如何加入ice伺服器 瀏覽:873
兄弟cnc編程說明書 瀏覽:204
php閃電入門教程學習 瀏覽:152
金岳霖邏輯pdf 瀏覽:938
linuxtomcat線程 瀏覽:77
pboc長度加數據加密 瀏覽:187
英雄聯盟國際服手游怎麼下安卓 瀏覽:298