zoukankan      html  css  js  c++  java
  • 迭代器遍历【List、Set、Map】

    迭代器遍历【List、Set、Map】

    example

     1 package boom.collection;
     2 
     3 import java.util.ArrayList;
     4 import java.util.HashMap;
     5 import java.util.HashSet;
     6 import java.util.Iterator;
     7 import java.util.List;
     8 import java.util.Map;
     9 import java.util.Map.Entry;
    10 import java.util.Set;
    11 
    12 /**
    13  * 迭代器遍历List、Set、Map
    14  * @author Administrator
    15  *
    16  */
    17 public class IteratorTest {
    18 
    19     public static void main(String[] args) {
    20         //testList();
    21         //testSet();
    22         testMap();
    23     }
    24     
    25     private static void testMap() {
    26         Map<Integer, String> map = new HashMap<>();
    27         map.put(001, "小喜庆");
    28         map.put(002, "小云云");
    29         map.put(003, "小胖砸");
    30         
    31         // 遍历map第一种
    32         Set<Entry<Integer, String>> ss = map.entrySet();
    33         for (Iterator<Entry<Integer, String>> iterator = ss.iterator(); iterator.hasNext();) {
    34             Entry<Integer, String> entry = (Entry<Integer, String>) iterator.next();
    35             System.out.println(entry.getKey() + "=>" + entry.getValue());
    36         }
    37         
    38         // 遍历map第二种(通过键去获取对应的键值对)
    39         Set<Integer> keySet = map.keySet();
    40         for (Iterator<Integer> iterator = keySet.iterator(); iterator.hasNext();) {
    41             Integer key = (Integer) iterator.next();
    42             System.out.println(key + "=>" + map.get(key));
    43         }
    44         
    45     }
    46 
    47     private static void testSet() {
    48         Set<String> set = new HashSet<>();
    49         set.add("谷歌");
    50         set.add("百度");
    51         set.add("搜狗");
    52         
    53         // 遍历
    54         for (Iterator<String> iterator = set.iterator(); iterator.hasNext();) {
    55             String string = iterator.next();
    56             System.out.println(string);
    57         }
    58     }
    59 
    60     private static void testList() {
    61         List<String> list = new ArrayList<>();
    62         list.add("Google");
    63         list.add("Baidu");
    64         list.add("SougGou");
    65         
    66         // 迭代器迭代集合
    67         for (Iterator<String> iterator = list.iterator(); iterator.hasNext();) {
    68             String string = (String) iterator.next();
    69             System.out.println(string);
    70         }
    71     }
    72 
    73 }
    View Code

    遍历List方法一:普通for循环

    1 for(int i=0;i<list.size();i++){//list为集合的对象名
    2     String temp = (String)list.get(i);
    3     System.out.println(temp);
    4 }

    遍历List方法二:增强for循环(使用泛型!)

    1 for (String temp : list) {
    2 System.out.println(temp);
    3 }

    遍历List方法三:使用Iterator迭代器(1)

    1 for(Iterator iter= list.iterator();iter.hasNext();){
    2     String temp = (String)iter.next();
    3     System.out.println(temp);
    4 }

    遍历List方法四:使用Iterator迭代器(2)

    1 Iterator  iter =list.iterator();
    2 while(iter.hasNext()){
    3     Object  obj =  iter.next();
    4     iter.remove();//如果要遍历时,删除集合中的元素,建议使用这种方式!
    5     System.out.println(obj);
    6 }

    遍历Set方法一:增强for循环

    1 for(String temp:set){
    2 System.out.println(temp);
    3 }

    遍历Set方法二:使用Iterator迭代器

    1 for(Iterator iter = set.iterator();iter.hasNext();){
    2     String temp = (String)iter.next();
    3     System.out.println(temp);
    4 }

    遍历Map方法一:根据key获取value

    1 Map<Integer, Man> maps = new HashMap<Integer, Man>();
    2 Set<Integer>  keySet =  maps.keySet();
    3 for(Integer id : keySet){
    4 System.out.println(maps.get(id).name);
    5 }

    遍历Map方法二:使用entrySet

    1 Set<Entry<Integer, Man>>  ss = maps.entrySet();
    2 for (Iterator iterator = ss.iterator(); iterator.hasNext();) {
    3     Entry e = (Entry) iterator.next(); 
    4     System.out.println(e.getKey()+"--"+e.getValue());

    Collections工具类 (collection是接口,collections是工具类)
    [java.util.Collections 提供了对Set、List、Map进行排序、填充、查找元素的辅助方法]
    创建模板进行测试:

    1 List<String> list = new ArrayList<>();
    2 for (int i = 0; i < 4; i++) {
    3     list.add(i + "小喜庆");
    4 }
    5 System.out.println("正常遍历:" + list);

    1. void sort(List) //对List容器内的元素排序,排序的规则是按照升序进行排序。

    1 // 递增的方式遍历[自定义类使用comparable接口进行排序]
    2 Collections.sort(list);
    3 System.out.println("递增遍历:" + list);

    2. void shuffle(List) //对List容器内的元素进行随机排列。

    1 // 随机排序list中的元素
    2 Collections.shuffle(list);
    3 System.out.println("随机遍历:" + list);

    3. void reverse(List) //对List容器内的元素进行逆续排列 。

    1 // 逆序排序
    2 Collections.reverse(list);
    3 System.out.println("逆序遍历:" + list);

    4. int binarySearch(List, Object)//对于顺序的List容器,采用折半查找的方法查找特定对象。

    1 // 二分查找法
    2 System.out.println(Collections.binarySearch(list, "小云云"));// 没有查到返回一个负值       -5
    3 System.out.println(Collections.binarySearch(list, "2小喜庆"));// 查到返回一个对应的下标     2

    5.void fill(List, Object) //用一个特定的对象重写整个List容器。

    1 //特定的对象重写整个List容器。
    2 Collections.fill(list, "Hello");
    3 System.out.println(list);

    【1~5】运行图:

     

  • 相关阅读:
    6_java_maven
    线性代数 linear algebra
    hadoop_wordcount_1027
    hadoop_worddistinct_1030
    hadoop_wordcount_1023
    搭建伪分布式_笔记
    linux-sunrpc
    linux-volatile
    linux---asmlinkage
    dqs_linux-1
  • 原文地址:https://www.cnblogs.com/cao-yin/p/9643296.html
Copyright © 2011-2022 走看看