欢迎光临
一个有态度、有温度的分享型博客

集合(List,Queue,Set,Map)的遍历整理

看完这篇文章,妈妈再也不用担心我不会集合的遍历了!!!包含了List,Queue,Set,Map等集合的遍历,整理一下,以作备忘!

1.集合的映射结构图

2.示例代码

package day15;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.Vector;

/*
 * 集合的遍历:
 * 遍历的方法主要有三种:
 * 1.for循环遍历;2.foreach循环遍历;3.使用迭代器中的iterator()方法遍历
 * 这又跟集合的种类不同而有所区别,如,Map接口定义的集合又称为查找表,用于存储"key-value"映射对
 */
public class ColAndMap {

    public static void main(String[] args) {
        /*
         * List集合遍历; 具体实现类有 ArrayList; LinkedList;Vector
         */
        // ArrayList
        List<String> list = new ArrayList<String>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        list.add("f");
        System.out.println(list);// [a, b, c, d, e, f]

        // 1.for循环遍历
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i) + ";");// a;b;c;d;e;f; list.get(int
                                                // index) 根据下标获得列表中指定位置的元素
        }
        System.out.println();
        // 2.foreach遍历
        for (String str : list) {
            System.out.print(str + ";"); // a;b;c;d;e;f;
        }
        // 3.迭代器的iterator()方法遍历
        Iterator<String> it = list.iterator();
        while (it.hasNext()) { // boolean:haxNext()是否还有元素可以迭代
            String s1 = it.next(); // 如果hasNext()返回true,则指向下一个迭代的元素
            System.out.print(s1 + ";");
        }

        System.out.println("----------------------");
        // LinkedList
        List<String> lkList = new LinkedList<String>();
        lkList.add("a");
        lkList.add("b");
        lkList.add("c");
        lkList.add("d");
        lkList.add("e");
        lkList.add("f");
        System.out.println(lkList);// [a, b, c, d, e, f]
        // 1.for遍历
        for (int i = 0; i < lkList.size(); i++) {
            System.out.print(lkList.get(i) + ";"); // a;b;c;d;e;f;
        }
        System.out.println();
        // 2.foreach遍历
        for (String str : lkList) {
            System.out.print(str + ";"); // a;b;c;d;e;f;
        }
        System.out.println();
        // iterator()方法遍历
        Iterator<String> lit = lkList.iterator();
        while (lit.hasNext()) {
            String str = lit.next();
            System.out.print(str + ";"); // a;b;c;d;e;f;
        }
        System.out.println();
        System.out.println("--------------------------");
        // Vector
        List<String> vector = new Vector<String>();
        vector.add("a");
        vector.add("b");
        vector.add("c");
        vector.add("d");
        vector.add("e");
        System.out.println(vector);// [a, b, c, d, e]

        // 1.for遍历
        for (int i = 0; i < vector.size(); i++) {
            System.out.print(vector.get(i) + ";"); //
        }
        System.out.println();
        // 2.foreach遍历
        for (String str : vector) {
            System.out.print(str + ";");
        }
        System.out.println();
        // iterator遍历
        Iterator<String> vit = vector.iterator();
        while (vit.hasNext()) {
            String str = vit.next();
            System.out.print(str + ";");
        }
        System.out.println();
        System.out.println("--------------------");
        /*
         * Set接口的集合遍历
         */

        // HashSet遍历
        Set<String> set = new HashSet<String>();
        set.add("a");
        set.add("b");
        set.add("c");
        set.add("d");
        set.add("e");
        System.out.println(set);// [d, e, b, c, a]
        // Set集合存放不重复的元素,其中的元素不能和有顺序的下标对应,因此无法从集合中取出特定的元素,遍历只能通过iterator()方法遍历

        Iterator<String> hsit =  set.iterator();
        while(hsit.hasNext()){
            System.out.print(hsit.next()+";");  //d;e;b;c;a;
        }
        System.out.println();
        //TreeSet 遍历
        Set<String> trset = new TreeSet<String>();
        trset.add("b");
        trset.add("a");
        trset.add("d");
        trset.add("e");
        trset.add("c");

        System.out.println(trset);  //[a, b, c, d, e]
        Iterator<String> tit =  trset.iterator();
        while(tit.hasNext()){
            System.out.print(tit.next()+";");  //a;b;c;d;e;
        }
        System.out.println();
        System.out.println("------Map集合的遍历-------");
        /**
         * Map 集合的遍历
         */

        Map<Integer,String> map = new HashMap<Integer,String>();
        //Map集合存放的元素键值不能重复,如果键值重复,会用后添加的元素的value值覆盖以前的value值
        map.put(2, "a");
        map.put(1, "c");
        map.put(8, "b");
        map.put(4, "d");
        map.put(5, "e");

        System.out.println(map);  //{1=c, 2=a, 4=d, 5=e, 8=b}

         Set<Entry<Integer,String>> mset =map.entrySet();
         Iterator<Entry<Integer,String>> mit = mset.iterator();
         while(mit.hasNext()){
             System.out.print(mit.next()+";");   //1=c;2=a;4=d;5=e;8=b;
         }

         System.out.println();
         System.out.println("------TreeMap遍历-------");

            Map<Integer,String> trmap = new TreeMap<Integer,String>();
            //Map集合存放的元素键值不能重复,如果键值重复,会用后添加的元素的value值覆盖以前的value值
            trmap.put(2, "a");
            trmap.put(1, "c");
            trmap.put(8, "b");
            trmap.put(4, "d");
            trmap.put(5, "e");

            System.out.println(trmap);  //{1=c, 2=a, 4=d, 5=e, 8=b}
            Set<Entry<Integer,String>> tset =map.entrySet();
             Iterator<Entry<Integer,String>> trit = tset.iterator();
             while(trit.hasNext()){
                 System.out.print(trit.next()+";");   //1=c;2=a;4=d;5=e;8=b;
             }
    }
}

欢迎纠正错误:rxwangwb(at)gmail(dot)com

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址