A. java iterator循環遍歷集合(比如HashSet)的原理
Iterator<String> it = set.iterator() 這時得到一個迭代器,它的指針位於第一個元素之前。
然後我們不停地 hasNext() 再 next 得到值,專當hasNext 為 false 時當然就不屬能去 next 了。
這背後的位置索引是在迭代器內部記錄著的,我們不能直接改它的值,只能 next 去下一個。
不過像 ListIterator 則是雙向的,可以 previous。遞增遞減都是由 next / previous 方法來操作的。
B. 請問在Java 中如何Set集合中的對象具體步驟
import java.util.HashSet;import java.util.Set;
public class tes {
public static void main(String[] args) {
//set集合,元素是不重復的。通過equal判斷是否相等
//如果是自定義的對象版,需要重寫權equal和hashcode方法
Set set = new HashSet();
set.add("sina");
set.add("");
set.add("");
System.out.println(set.toString());
set.remove("");
System.out.println(set.toString());
}
}
======
結果:
[, sina]
[sina]
C. java,hashset,string一點問題為什麼hashset可以識別String唯一性
因為你存儲T類型的時候,set集合裡面存儲的是T的對象,你創建了三個對象t1,t2,t3,雖然這三個對象的id都是1,但是這三個對象是不同的對象,所以存在set裡面會都存在。
而下面那個集合存儲的是字元串,存在在s裡面的時候就是比較的是字元串的值,由於你的s1,s2,s3的值是相同的,你雖然加了雙引號,但是沒有作用。給你看看樣列,你應該就清楚了!
importjava.io.IOException;
importjava.util.HashSet;
importjava.util.Iterator;
importjava.util.Set;
publicclasstest{
publicstaticvoidmain(String[]args)throwsIOException
{
Set<String>s=newHashSet<String>();
s.add("1");
s.add("1"+"");
s.add(""+"1");//這里其實三個字元串的值是相同的。比較不能用==而要用equals
Iteratorit=s.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
}
運行結果1:
D. JAVA的集合類型有哪些
集合類型主要有3種:set(集)、list(列表)和map(映射)。
1、List(有序、可重復)
List里存放的對象是有序的,同時也是可以重復的,List關注的是索引,擁有一系列和索引相關的方法,查詢速度快。因為往list集合里插入或刪除數據時,會伴隨著後面數據的移動,所有插入刪除數據速度慢。
2、Set(無序、不能重復)
Set里存放的對象是無序,不能重復的,集合中的對象不按特定的方式排序,只是簡單地把對象加入集合中。
3、Map(鍵值對、鍵唯一、值不唯一)
Map集合中存儲的是鍵值對,鍵不能重復,值可以重復。根據鍵得到值,對map集合遍歷時先得到鍵的set集合,對set集合進行遍歷,得到相應的值。
(4)javahashsetapi擴展閱讀:
JAVA集合類型四種常見輸出方式:
1、Iterator:迭代輸出,是使用最多的輸出方式。
2、ListIterator:是Iterator的子介面,專門用於輸出List中的內容。
3、foreach輸出:JDK1.5之後提供的新功能,可以輸出數組或集合。
4、for循環。
代碼示例如下:
for的形式:for(inti=0;i<arr.size();i++){...}
foreach的形式:for(inti:arr){...}
iterator的形式:
Iterator it = arr.iterator();
while(it.hasNext()){ object o =it.next(); ...}
參考資料來源:網路:java集合類
E. Java集合框架的知識總結
說明:先從整體介紹了Java集合框架包含的介面和類,然後北京IT培訓總結了集合框架中的一些基本知識和關鍵點,並結合實例進行簡單分析。
1、綜述
所有集合類都位於java.util包下。集合中只能保存對象(保存對象的引用變數)。(數組既可以保存基本類型的數據也可以保存對象)。
當我們把一個對象放入集合中後,系統會把所有集合元素都當成Object類的實例進行處理。從JDK1.5以後,這種狀態得到了改進:可以使用泛型來限制集合里元素的類型,並讓集合記住所有集合元素的類型(參見具體泛型的內容)。
Java的集合類主要由兩個介面派生而亮清出:Collection和Map,Collection和Map是Java集合框架的根介面,這兩個介面又包含了一些介面或實現類。
Set、List和Map可以看做集合的三大類。
List集合是有序集合,集合中的元素可以重復,訪問集合中的元素可以根據元素的索引來訪問。
Set集合是無序集合,集合中的元素不可以重復,訪問集合中的元素只能根據元素本身來訪問(也是不能集合里元素不允許重復的原因)。
Map集合中保存Key-value對形式的元素,訪問時只能根據每項元素的key來訪問其value。
對於Set、List和Map三種集合,最常用的實現類分別是HashSet、ArrayList和HashMap三個實現類。(並發控制的集合類,以後有空研究下)。
2、Collection介面
Collection介面是List、Set和Queue介面的父介面,同時可以操作這三個接吵鎮口。
Collection介面定義操作集合元素的具體方法大家可以參考API文檔,這里通過一個例子來說明Collection的添加元素、刪除元素、返回集合中元素的個數以及清空集合元素的方法。
3、兩種遍歷集合的方法Iterator介面和foreach循敬碰前環1、Iterator介面
Iterator也是Java集合框架的成員,主要用於遍歷(即迭代訪問)Collection集合中的元素,也稱為迭代器。