Ⅰ java中HashSet怎樣遍歷取出裡面的值給個例子~~
HashSet<String> set=new HashSet<String>();
set.add("1");
set.add("2");
set.add("3");
Iterator<String> iterator=set.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
控制台輸出:
3
2
1
對於集合這塊的類都可以這樣寫的,比如你把第一行換成:
ArrayList<String> set=new ArrayList<String>();
後面的程序不動,一樣可以遍歷輸出的。
不太懂的話可以網路Iterator的用法和原理
Ⅱ Java HashSet的用法
HashSet
set
=
new
HashSet();
set.add("a");
set.add("b");
set.add("c");
set.add("d");
Iterator
it
=
set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
=======================================================
上面就是遍歷沖hashset中取出每個元素的方法,由於hashset本來就是無序的,所以你如果想通過下標取出元素的話,最好還是用list,你以什麼順序把元素放進去,就可以什麼順序把元素取出來
Ⅲ JAVA編程題 HashSet存儲任意三個字元串,並遍歷(增強for遍歷)
HashSet<String> hash = new HashSet<String>();
//添加元素
hash.add("abc");
hash.add("java");
hash.add("haah");
//通過增強for循環遍歷HashSet
for(String s: hash) {
System.out.println(s);
}
//通過迭代器遍歷HashSet
Iterator<String> it = hash.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
Ⅳ java iterator循環遍歷集合(比如HashSet)的原理
如果你用的是eclipse,按住ctrl鍵,滑鼠左鍵點next()方法就能看到了,然後關聯JDK源碼就可以了
Ⅳ Java遍歷HashSet為什麼輸出是有序的
實現是會變的,HashSet的迭代器在輸出時「不保證有序」,但也不是「保證無序」。也就是說,輸出時有序也是允許的,但是你的程序不應該依賴這一點。
Ⅵ Java中,HashSet遍歷輸出不會有重復的元素;但是,元素本身是對象的話卻是會出現重復,為什麼怎麼改
重寫對象(Employee)的兩個方法:hashCode和equals,因為hashset比較對象是否不同的依據就是這兩個方法,如果你是在eclipse環境里開發,不用手寫的,右鍵Source就有Generate的實現
Ⅶ Java中Set集合怎樣用for遍歷
增強型的for循環 和普通for循環一樣
增強型的for循環 優點主要體現在集合中,隨便舉個例子
比如對 set 的遍歷
一般是迭代遍歷:
Set<String> set = new HashSet<String>();
Iterator<String> it = set.iterator();
while (it.hasNext()) {
String str = it.next();
System.out.println(str);
}
for循環遍歷:
for (String str : set) {
System.out.println(str);
}
是不是簡單些?
優點還體現在泛型 假如 set中存放的是Object
Set<Object> set = new HashSet<Object>();
for循環遍歷:
for (Object obj: set) {
if(obj instanceof Integer){
int aa= (Integer)obj;
}else if(obj instanceof String){
String aa = (String)obj
}
........
}
唯一的缺點就是 在遍歷 集合過程中,不能對集合本身進行操作
for (String str : set) {
set.remove(str);//錯誤!
}
Ⅷ java 我用hashset add兩個不同的對象··但是hashset遍歷出來的對象和hashcode是重復的好奇怪啊
hashset不保證集合的迭代順序;特別是它不保證該順序恆久不變。這是官方API中說的,所以你遍歷的時候就有可能得到兩個相同的對象了;或者說是你的遍歷方法有問題,下面給你一個參考 HashSet hs = new HashSet(); hs.add("1"); hs.add("2"); Iterator it = hs.iterator(); while (it.hasNext()) { System.out.println(it.next()); }
Ⅸ java HashSet作為形參,在函數中用迭代器遍歷為什麼會報空指針應如何解決
應為你傳遞過來的是null啊,你把null賦值給itemset,再遍歷itemset它就拋空指針了。
假如你把a傳遞給itemset,你在傳遞前列印一下a看是不是空
Ⅹ 用Java實現:HashSet集合儲存自定義對象並遍歷。
Set<Person> set=new HashSet<Person>();
for(int i=0;i<10;i++){
Person person=new Person();
person.setAge(i);
person.setId(i);
person.setName("name"+i);
set.add(person);
}
for(Person personsyso:set){
System.out.println(personsyso);
}
我自己定義的person類,使用增強for循環;