zoukankan      html  css  js  c++  java
  • Collection、Map、数组 遍历方式

    结论:无论是数组还是Collection for each 都是一个非常好的选择

    一、for each底层实现

    对于Collection,for each是隐式调用Iterator实现的,效率比显示调用Iterator略低,对于Array,for each是通过对下标引用实现的,效率比for循环要略低。for each返回的是Collection一个对象,因此不能用for each进行赋值操作。

    二、Collection实现了java.lang.Iterable接口具有java.util.Iterator<E> iterator(),所以List、Queue、Set均可使用for each方式遍历。

    三、HashMap三种遍历方式:

    map.entrySet()会返回一个Set<Entry<K,V>>,然后使用for each(隐式调用Iterator)

    Map<String, String> map = new HashMap<String, String>();
    for (Entry<String, String> entry : map.entrySet()) {
        entry.getKey();
        entry.getValue();
    }
    

     ②map.keySet()会返回一个Set<Key>,然后使用for each(隐式调用Iterator)

    Map<String, String> map = new HashMap<String, String>();
    for (String key : map.keySet()) {
    	map.get(key);
    }
    

     ③map.value()会返回一个Collection<Value>,然后使用for each(隐式调用Iterator)

    Array转List

    String[] strArray = {"aaa", "bbb", "ccc"};   
    List list= Arrays.asList(strArray);  

    注意list为ArrayList类型,但和java.util.ArrayList是不一样的。StrArray必须为对象数组,如果为基本类型数组的话,list.size()为1,

    Collection转数组
    直接使用Collection的toArray()方法

    Map转Collection
    直接使用Map的values()方法。
    List和Set转换

    直接通过构造函数传递一个Collection对象即可。

     参考文献:http://www.cnblogs.com/xwdreamer/archive/2012/05/30/2526822.html

  • 相关阅读:
    如何用SendInput模拟键盘的组合键使用?
    Js获取当前日期时间及其它操作
    如何动态修改窗口的Style
    js时间加减
    遍历子窗口
    使用SampleGrabber过滤器扑获图像
    js 字符串日期 yyyyMMdd 转化为 date
    ModifyStyle函数的用法
    有谁用过sendinput摸拟一个鼠标击键?
    在VC中如何才能得到当前屏幕的分辨率
  • 原文地址:https://www.cnblogs.com/tonyluis/p/5745883.html
Copyright © 2011-2022 走看看