package com.file;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class TestSet {
public static void main(String[] args) {
Set<String> set=new HashSet<String>();
set.add("a1");
set.add("b2");
set.add("c2");
//方法一:使用foreach循环
for(String str:set){
System.out.println(str);
System.out.println(str.hashCode());
}
System.out.println("--------------");
//方法二:使用迭代器来遍历
Iterator<String> it=set.iterator();
while(it.hasNext()){
String str=it.next();
System.out.println(str);
}
System.out.println("+++++++++++==");
// 优点还体现在泛型 假如 set中存放的是Object
// Set<Object> set1 = new HashSet<Object>();
//for循环遍历:
for (Object obj: set) {
if(obj instanceof Integer){
int aa= (Integer)obj;
System.out.println(aa);
}else if(obj instanceof String){
String aa = (String)obj;
System.out.println(aa);
}
}
}
}
Java中关于HashMap的元素遍历的顺序问题
发现得到的元素不是按照之前加入HashMap的顺序输出的,原因是HashMap散列图、Hashtable散列表是按“有利于随机查找的散列(hash)的顺序”。并非按输入顺序。遍历时只能全部输出,而没有顺序。甚至可以rehash()重新散列,来获得更利于随机存取的内部顺序。
总之,遍历HashMap或Hashtable时不要求顺序输出,即与顺序无关。
1 Map<String, String> paramMap = new HashMap<String, String>();
可以用java.util.LinkedHashMap 就是按加入时的顺序遍历了。
1 Map<String, String> paramMap = new LinkedHashMap <String, String>();
类似的还有 java.util.LinkedHashSet
如使用LinkedHashSetpackage com.file;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.Set;
public class TestSet {
public static void main(String[] args) {
Set<String> set=new LinkedHashSet<String>();
set.add("a1");
set.add("b2");
set.add("c2");
//方法一:使用foreach循环
for(String str:set){
System.out.println(str);
System.out.println(str.hashCode());
}
System.out.println("--------------");
//方法二:使用迭代器来遍历
Iterator<String> it=set.iterator();
while(it.hasNext()){
String str=it.next();
System.out.println(str);
}
System.out.println("+++++++++++==");
// 优点还体现在泛型 假如 set中存放的是Object
// Set<Object> set1 = new HashSet<Object>();
//for循环遍历:
for (Object obj: set) {
if(obj instanceof Integer){
int aa= (Integer)obj;
System.out.println(aa);
}else if(obj instanceof String){
String aa = (String)obj;
System.out.println(aa);
}
}
}
}
输出的顺序与输入时的顺序一致;