美文网首页
阿里开发手册集合类学习之一

阿里开发手册集合类学习之一

作者: anjian8000 | 来源:发表于2020-03-12 23:14 被阅读0次

最近在学习阿里开发手册,感觉对于集合的一些用法还是存在问题,整理一下,防止后期忘记!

1、使用集合转数组的方法,必须使用集合的 toArray(T[] array),传入的是类型完全一

致、长度为 0 的空数组。

public static void main(String[] args) {

        //集合转为数据  通过这种方法可以转化

         List<String> list = new ArrayList<>();

         list.add("a");

         list.add("b");

         String strArr[] = list.toArray(new String[0]);

         System.out.println(strArr.length);

         List<Integer> intList = new ArrayList<>();

         intList.add(1);

         Integer intArr [] = intList.toArray(new Integer[0]);

         System.out.println(intArr.length);

}

2、不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用Iterator 方式,如果并发操作,需要对 Iterator 对象加锁。

public static void main(String[] args) {

        List<String> list = new ArrayList<>();

        list.add("a");

        list.add("b");

        // 正解:使用Iterator移除集合元素

        Iterator<String> iterator = list.iterator();

        while(iterator.hasNext()){

                String item = iterator.next();

                if("b".equals(item)){

                        iterator.remove();

                }

         }

         for (String item : list) {

               System.out.println("item:" + item);

         }

        // 反例:这样写会导致错误

        // for (String item : list) {

        // if("b".equals(item)){

        // list.remove(item);

        // }

        // }

}

如果感兴趣的同学,可以看一下这篇文章,讲的挺好

转载:https://www.cnblogs.com/loong-hon/p/10256686.html

3、使用 entrySet 遍历 Map 类集合 KV,而不是 keySet 方式进行遍历。

说明:keySet 其实是遍历了 2 次,一次是转为 Iterator 对象,另一次是从 hashMap 中取出 key 所对应的 value。而 entrySet 只是遍历了一次就把 key 和 value 都放到了 entry 中,效率更高。如果是 JDK8,使用 Map.forEach 方法。

public static void main(String[] args) {

    // 示例:通过entry循环查询map中的key,value

    HashMap<String, String> map = new HashMap<>();

    map.put("a", "1");

    map.put("b", "2");

    map.put("c", "3");

    map.put("f", "3");

    map.put("d", "3");

    map.put("e", "4");

    Set<Entry<String,String>> entry = map.entrySet();

    for (Entry<String, String> entry2 : entry) {

            System.out.println("key:" + entry2.getKey() + "," + entry2.getValue());

    }

}

相关文章

网友评论

      本文标题:阿里开发手册集合类学习之一

      本文链接:https://www.haomeiwen.com/subject/pxzgjhtx.html