zoukankan      html  css  js  c++  java
  • Arrays.asList() 和Collections.singletonList()的区别

    1.Arrays.asList()返回值是仍然是一个可变的集合,但是返回值是其内部类,不具有add方法,可以通过set方法进行增加值,默认长度是10

    2.Collections.singletonList()返回的是不可变的集合,但是这个长度的集合只有1,可以减少内存分配,无需分配额外的内存。可以从SingletonList内部类看得出来,由于只有一个element,因此可以做到内存分配最小化,相比之下ArrayList的DEFAULT_CAPACITY=10个。但是返回的值依然是Collections的内部实现类,同样没有add的方法,调用add,set方法会报错。

    源码:

    /**
         * Returns an immutable list containing only the specified object.
         * The returned list is serializable.
         *
         * @param  <T> the class of the objects in the list
         * @param o the sole object to be stored in the returned list.
         * @return an immutable list containing only the specified object.
         * @since 1.3
         */
        public static <T> List<T> singletonList(T o) {
            return new SingletonList<>(o);
        }

    用法:

    List<Integer> orderNos = Collections.singletonList(orderNo);

    如何将一个元素优雅的转换成一个集合:

    List<String> list = Stream.of(str1).collect(Collectors.toList());
  • 相关阅读:
    openstack配置增加节点
    OpenStack基本应用
    OpenStack
    zabbix(客户端自动发现,自动添加)
    zabbix 邮件报警(以网易邮箱为例)
    数据库原理
    网页设计与制作
    质量管理与质量保证
    比较行政学【0717】
    企业管理学[9053]
  • 原文地址:https://www.cnblogs.com/lu97/p/15636111.html
Copyright © 2011-2022 走看看