一:如何使用for循环和迭代器遍历Map集合原文地址(转载)
1、通过key集合访问,对Key敢兴趣,可以访问与key对应的Value值;
for(String k:maps.keySet()){
System.out.println(k+":"+maps.get(k));
}
2、通过value集合访问,只对value值感兴趣,无法访问key值;
for(String value:maps.values()){
System.out.println(value);
}
3、通过Entry集合访问,对Entry感兴趣,可以访问与key对应的Value值
for(Entry entry:maps.entrySet()){ System.out.println(entry.getKey()+":"+entry.getValue());
}
4、通过迭代Key集合访问Map集合,maps.keySet()返回的是一个Set集合,Set直接继承Collection,所以可以对其进行迭代。
Iterator<String> iterator = maps.keySet().iterator();
while(iterator.hasNext()){
String key = iterator.next();
System.out.println(key+":"+maps.get(key));
}
5、通过迭代Values集合访问Map集合,maps.values()返回的是Collection,所以可以对其迭代。
Iterator<String> iter= maps.values().iterator();
while(iter.hasNext()){
System.out.println(iter.next());
}
6、通过迭代Entry集合访问Map集合,maps.entrySet()返回的是一个Set
Iterator<Entry<String, String>> it = maps.entrySet().iterator();
while(it.hasNext()){
Entry<String, String> entry = it.next(); System.out.println(entry.getKey()+":"+entry.getValue());
}
二:继续使用foreach遍历集合:原文地址
可以封装为一个公共方法,进行各种collections的遍历
//公共方法
public static void forEachCollection(Collection<String> colleciton){
for(String str:colleciton){按照被添加的顺序保存对象
System.out.print(str+" ");
}
System.out.println();
}
//测试方法
public static void listCollection() {
String[] array = {"A","A","B","E","F","G","C","D"};
forEachCollection(new ArrayList<String>(Arrays.asList(array)));//A A B E F G C D
forEachCollection(new LinkedList<String>(Arrays.asList(array)));//按照被添加的顺序保存对象 //A A B E F G C D
forEachCollection(new HashSet<String>(Arrays.asList(array)));//无重复,无序,存储顺序并无实际意义//D E F G A B C
forEachCollection(new TreeSet<String>(Arrays.asList(array)));//无重复,按照比较结果的升序保存对象//A B C D E F G
forEachCollection(new LinkedHashSet<String>(Arrays.asList(array)));//无重复,按照被添加的顺序保存对象//A B E F G C D
}
三:使用迭代进行集合的遍历(同理封装成一个公共方法进行使用)
//公共方法
public class ForeachDemo {
public static void printCollection(Collection<String> colleciton){
Iterator<String> it = colleciton.iterator();
while(it.hasNext()){
System.out.print(it.next()+" ");
}
System.out.println();
}
//测试方法
public static void main(String[] args) {
String[] array = {"A","A","B","E","F","G","C","D"};
printCollection(new ArrayList<String>(Arrays.asList(array)));//A A B E F G C D
printCollection(new LinkedList<String>(Arrays.asList(array)));//按照被添加的顺序保存对象 //A A B E F G C D
printCollection(new HashSet<String>(Arrays.asList(array)));//无重复,无序,存储顺序并无实际意义//D E F G A B C
printCollection(new TreeSet<String>(Arrays.asList(array)));//无重复,按照比较结果的升序保存对象//A B C D E F G
printCollection(new LinkedHashSet<String>(Arrays.asList(array)));//无重复,按照被添加的顺序保存对象//A B E F G C D
}