600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Java中的Map Set List各种方式遍历

Java中的Map Set List各种方式遍历

时间:2020-06-27 19:15:08

相关推荐

Java中的Map Set List各种方式遍历

1. Map的5种遍历方法

package com.grandage.test;import java.util.HashMap;import java.util.Iterator;import java.util.Map;public class MapTraversing {public static void main(String[] args) {Map<String, String> map = new HashMap<>();map.put("key1", "value1");map.put("key2", "value2");map.put("key3", "value3");//1. 普遍使用,二次取值System.out.println("通过Map.keySet遍历key和value");for (String key : map.keySet()) {System.out.println("key= " + key + " and value= " + map.get(key));}//2.System.out.println("通过Map.entrySet使用iterator遍历key和value:");Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();while (it.hasNext()) {Map.Entry<String, String> entry = it.next();System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());}//3. 推荐,尤其是容量大时System.out.println("通过Map.entrySet遍历key和value");for (Map.Entry<String, String> entry : map.entrySet()) {System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());}//4. 通过Map.values()遍历所有的value,但不能遍历keyfor (String v : map.values()) {System.out.println("value= " + v);}//5. lambda遍历mapmap.forEach((k,v)-> System.out.println(k+"-<key=====value->"+v));}}复制代码

2.Set遍历的4种方法

package com.utils;import java.util.HashSet;import java.util.Iterator;import java.util.LinkedHashSet;import java.util.Set;public class SetTraversing {public static void main(String[] args) {//Hashset 它不保证集合的迭代顺序;特别是它不保证该顺序恒久不变Set<String> set = new HashSet<>();set.add("value1");set.add("value2");set.add("value3");//LinkedHashSet 定义了迭代顺序,即按照将元素插入到集合中的顺序(插入顺序)进行迭代Set<String> setOrder = new LinkedHashSet<>();setOrder.add("value1");setOrder.add("value2");setOrder.add("value3");//1. 迭代遍历Iterator<String> it = set.iterator();while (it.hasNext()) {String str = it.next();System.out.println(str);}//2. for循环遍for (String str : setOrder) {System.out.println(str);}//2-1. 增强型for循环 优点还体现在泛型 假如:set中存放的是ObjectSet<Object> setObject = new HashSet<>();setObject.add(111);setObject.add("222");for (Object obj : setObject) {if (obj instanceof Integer) {int resultValue = (Integer) obj;System.out.println("Integer:" + resultValue);} else if (obj instanceof String) {String resultValue = (String) obj;System.out.println("String:" + resultValue);}}//3. 集合类的通用遍历方式, 从很早的版本就有, 用迭代器迭代for (Iterator it2 = set.iterator(); it2.hasNext(); ) {System.out.println(it2.next());}//4. jdk1.8之后set.forEach(System.out::println);}}复制代码

3.List集合的5种遍历方式

package com.utils;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.ListIterator;public class ListTraversing {public static void main(String[] args) {// 有序元素 可重复 遍历List<String> arrayList=new ArrayList<>();arrayList.add("value1");arrayList.add("value2");//1. foreach遍历(不需要index推荐)for(String str:arrayList){System.out.println(str);}//2. for遍历(需要index推荐)for (int i=0,n=arrayList.size(); i < n ; i++) {System.out.println(arrayList.get(i));}//3. 迭代器遍历Iterator<String> it = arrayList.iterator();while(it.hasNext()){System.out.println(it.next());}//4. jdk1.8之后arrayList.forEach(System.out::println);//5.使用ListIteratorListIterator<String> listIt = arrayList.listIterator();while(listIt.hasNext()){System.out.println(listIt.next());}}}复制代码

博客的所有作品采用CC0 1.0 通用 (CC0 1.0)公共领域贡献进行许可

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。