• Java集合的遍历


    一 , 集合的体会(Collection , list, set ,map)

      1,遍历list的方法:

      第一种方法:for-each方法

      public class ListTest{

        public static void main(String[] args){

          List<String> list = new ArrayList<String>();
          long t1,t2;
          for(int j = 0; j < 10000000; j++)
          {
            list.add("aaaaaa" + j);
          }

          for(String tmp:list)
          {
            //System.out.println(tmp);
          }

      }

      第二种方法:for-变量的方法
        public class ListTest{

        public static void main(String[] args){

          List<String> list = new ArrayList<String>();
          long t1,t2;
          for(int j = 0; j < 10000000; j++)
          {
            list.add("aaaaaa" + j);
          }

          for(int i = 0; i < list.size(); i++)
          {
            list.get(i);
            //System.out.println(list.get(i));
          }

         }

          t2=System.currentTimeMillis();
        }

       第三种方法 :迭代遍历方法
        public class ListTest{

        public static void main(String[] args){

          List<String> list = new ArrayList<String>();
          long t1,t2;
          for(int j = 0; j < 10000000; j++)
          {
            list.add("aaaaaa" + j);
          }

          Iterator<String> iter = list.iterator();
          t1=System.currentTimeMillis();
          while(iter.hasNext())
          {
            iter.next();
            //System.out.println(iter.next());
          }
          t2=System.currentTimeMillis();

          // for (Iterator i = list.iterator(); i.hasNext();) {
                  //System.out.println(i.next());
                //} 

        }

        }
      2,遍历Set的方法:

        1.迭代遍历:

        Set<String> set = new HashSet<String>();
        Iterator<String> it = set.iterator();
        while (it.hasNext()) {
          String str = it.next();
          System.out.println(str);
        }

       2.for循环遍历:
            for (String str : set) {
        System.out.println(str);
        }

        优点还体现在泛型 假如 set中存放的是Object

        Set<Object> set = new HashSet<Object>();
        for循环遍历:
        for (Object obj: set) {
        if(obj instanceof Integer){
        int aa= (Integer)obj;
        }else if(obj instanceof String){
        String aa = (String)obj
        }
        }

       3.Map 的遍历    

        //循环遍历map的方法
        public class CircleMap {
        public static void main(String[] args) {
        Map<String, Integer> tempMap = new HashMap<String, Integer>();
        tempMap.put("a", 1);
        tempMap.put("b", 2);
        tempMap.put("c", 3);
        // 遍历方法一 hashmap entrySet() 遍历
        System.out.println("方法一");
        Iterator it = tempMap.entrySet().iterator();
        while (it.hasNext()) {
        Map.Entry entry = (Map.Entry) it.next();
        Object key = entry.getKey();
        Object value = entry.getValue();
        System.out.println("key=" + key + " value=" + value);
        }
        System.out.println("");
        // JDK1.5中,应用新特性For-Each循环
        // 遍历方法二
        System.out.println("方法二");
        for (Map.Entry<String, Integer> entry : tempMap.entrySet()) {
        String key = entry.getKey().toString();  
        String value = entry.getValue().toString();
        System.out.println("key=" + key + " value=" + value);
        }
        System.out.println("");

        // 遍历方法三 hashmap keySet() 遍历
        System.out.println("方法三");
        for (Iterator i = tempMap.keySet().iterator(); i.hasNext();) {
        Object obj = i.next();
        System.out.println(obj);// 循环输出key
        System.out.println("key=" + obj + " value=" + tempMap.get(obj));
        }
        for (Iterator i = tempMap.values().iterator(); i.hasNext();) {
        Object obj = i.next();
        System.out.println(obj);// 循环输出value
        }
          System.out.println("");

        // 遍历方法四 treemap keySet()遍历
        System.out.println("方法四");
        for (Object o : tempMap.keySet()) {
        System.out.println("key=" + o + " value=" + tempMap.get(o));
        }
        System.out.println("11111");

        // java如何遍历Map <String, ArrayList> map = new HashMap <String,
        // ArrayList>();
        System.out.println("java 遍历Map <String, ArrayList> map = new HashMap <String, ArrayList>();");
        Map<String, ArrayList> map = new HashMap<String, ArrayList>();
        Set<String> keys = map.keySet();
        Iterator<String> iterator = keys.iterator();
        while (iterator.hasNext()) {
        String key = iterator.next();
        ArrayList arrayList = map.get(key);
        for (Object o : arrayList) {
          System.out.println(o + "遍历过程");
        }
        }
        System.out.println("2222");
        Map<String, List> mapList = new HashMap<String, List>();
        for (Map.Entry entry : mapList.entrySet()) {
          String key = entry.getKey().toString();
           List<String> values = (List) entry.getValue();
          for (String value : values) {
          System.out.println(key + " --> " + value);
         }
        }
        }
        }

      Q:Comparable和Comparator区别
          A:调用java.util.Collections.sort(List list)方法来进行排序的时候,List内的Object都必须实现了Comparable接口。
            java.util.Collections.sort(List list,Comparator c),可以临时声明一个Comparator 来实现排序。
            Collections.sort(imageList, new Comparator() {
                public int compare(Object a, Object b) {
                    int orderA = Integer.parseInt( ( (Image) a).getSequence());
                    int orderB = Integer.parseInt( ( (Image) b).getSequence());
                    return orderA - orderB;
               }
            });
            如果需要改变排列顺序
            改成return orderb - orderA 即可。

      

  • 相关阅读:
    java大数取余
    hdu--5351--MZL's Border
    NYOJ--水池数目
    NYOJ--32--SEARCH--组合数
    NYOJ--20--搜索(dfs)--吝啬的国度
    hdu--4148--Length of S(n)
    hdu--2098--分拆素数和
    hdu--1873--看病要排队
    hdu--1870--愚人节的礼物
    hdu--1237--简单计算器
  • 原文地址:https://www.cnblogs.com/junhuijiang/p/4356008.html
Copyright © 2020-2023  润新知