码代码时遇到List和Map的遍历总是需要百度一下,今天写个博客涨涨记性。
List的遍历
方法一:常见的for循环遍历
public static void methodOne(List<String> list) {
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i));
}
System.out.println();
}
方法二:增强型for循环遍历
public static void methodTwo(List<String> list) {
for (String str : list) {
System.out.print(str);
}
System.out.println();
}
方法三:迭代器方法遍历
public static void methodThree(List<String> list) {
Iterator<String> it = list.iterator();
while (it.hasNext()) {
String str = it.next();
System.out.print(str);
}
System.out.println();
}
Map的遍历
public static void main(String[] args) {
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
/**
* @description: 方法1,在for-each循环中使用entries来遍历
*/
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
/**
* @description: 方法2,在for-each循环中遍历keys或values。
* 该方法比entrySet遍历在性能上稍好
*/
//遍历map中的键
for (Integer key : map.keySet()) {
System.out.println("Key = " + key);
}
//遍历map中的值
for (Integer value : map.values()) {
System.out.println("Value = " + value);
}
/**
* @description: 方法3,使用Iterator遍历
* 需要导入包:java.util.Iterator;
* 从性能方面看,该方法与方法二的性能差不多。
*/
Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry<Integer, Integer> entry = entries.next();
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
/**
* @description: 方法4,通过键找值遍历
* 不推荐该方法,效率较低
*/
for (Integer key : map.keySet()) {
Integer value = map.get(key);
System.out.println("Key = " + key + ", Value = " + value);
}
}