map、set里面结点如何遍历?几种常见的方法记录~
一、set里节点的遍历
用Iterator迭代器遍历:
package com.test01;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class MapTest01 {
public static void main(String[] args) {
Set<Integer> set = new HashSet<>();
set.add(1);
set.add(2);
set.add(3);
Iterator<Integer> integerIterator=set.iterator();
System.out.println(integerIterator.next());
while (integerIterator.hasNext()){
System.out.println(integerIterator.next());
}
}
}
输出结果:
二、map里结点的遍历
1、迭代器遍历,可以拿到节点
package com.test01;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class MapTest02 {
public static void main(String[] args) {
Map<Integer,Integer> map = new HashMap<>();
map.put(1,1);
map.put(2,2);
map.put(3,3);
map.put(4,4);
Iterator<Map.Entry<Integer,Integer>> iterator = map.entrySet().iterator();
while(iterator.hasNext()){
Map.Entry<Integer,Integer> entry = iterator.next();
int key=entry.getKey();
int value=entry.getValue();
System.out.println(key+"+"+value);
}
}
}
输出结果:
2、先找key(map.keySet()),再通过key找value
先取key再取value
for(int key:map.keySet()){
System.out.println("key:"+key+"value:"+map.get(key));
}
输出结果:
3、遍历得到节点本点
for (Map.Entry<Integer,Integer> entry:map.entrySet()){
System.out.println("key:"+entry.getKey()+" value:"+entry.getValue());
}
4、只遍历value,只能拿到value
for (Integer val:map.values()){
System.out.println("value:"+val);
}
输出结果: