Java中的Map、Set、List各种方式遍历
生活随笔
收集整理的這篇文章主要介紹了
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)公共領域貢獻進行許可
轉載于:https://juejin.im/post/5d0add416fb9a07efe2dc1fd
總結
以上是生活随笔為你收集整理的Java中的Map、Set、List各种方式遍历的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: asp.net ajax回调函数
- 下一篇: NLP 中的文本分类