Lists.newArrayListWithExpectedSize( int estimatedSize)  构造一个期望长度为estimatedSize的ArrayList实例。

源码:

public static <E> ArrayList<E> newArrayListWithExpectedSize(int estimatedSize) {
return new ArrayList(computeArrayListCapacity(estimatedSize));
}
//计算集合的容量
@VisibleForTesting
static int computeArrayListCapacity(int arraySize) {
//判断是否小于0,小于0则抛出异常。
CollectPreconditions.checkNonnegative(arraySize, "arraySize");
return Ints.saturatedCast(5L + (long)arraySize + (long)(arraySize / 10));
}
//检查是否小于0
@CanIgnoreReturnValue
static int checkNonnegative(int value, String name) {
if (value < 0) {
throw new IllegalArgumentException(name + " cannot be negative but was: " + value);
} else {
return value;
}
}
//判断计算出来的数组长度是否在int的范围内
public static int saturatedCast(long value) {
if (value > 2147483647L) {
return 2147483647;
} else {
return value < -2147483648L ? -2147483648 : (int)value;
}
}

Lists.newArrayListWithExpectedSize( int estimatedSize)的更多相关文章

  1. Lists

    List类主要提供了对List类的子类构造以及操作的静态方法.在类中支持构造ArrayList.LinkedList以及newCopyOnWriteArrayList对象的方法.其中提供了以下构造Ar ...

  2. [置顶] Guava学习之Lists

    Lists类主要提供了对List类的子类构造以及操作的静态方法.在Lists类中支持构造ArrayList.LinkedList以及newCopyOnWriteArrayList对象的方法.其中提供了 ...

  3. guava学习--集合1

    Lists: 其内部使用了静态工厂方法代替构造器,提供了许多用于List子类构造和操作的静态方法,我们简单的依次进行说明,如下: newArrayList():构造一个可变的.空的ArrayList实 ...

  4. Guava集合工具

    JDK提供了一系列集合类,如下所示,极大的方便了开发工作,并针对这些类提供了一个工具类java.util.Collections,Guava在此基础上添加了一些常用工具类方法,相比于java.util ...

  5. java代码之美(9)---guava之Lists、Maps

    guava之Lists.Maps 谷歌提供了guava包里面有很多的工具类,Lists和Maps集合工具,集合操作做了些优化提升. 1.概述 1.静态工厂方法 (1)Guava提供了能够推断范型的静态 ...

  6. java代码(9) ---guava之Lists、Maps

     guava之Lists.Maps 谷歌提供了guava包里面有很多的工具类,Lists和Maps集合工具,集合操作做了些优化提升 一.概述 1.静态工厂方法 (1)Guava提供了能够推断泛型的静态 ...

  7. [LeetCode] Merge k Sorted Lists 合并k个有序链表

    Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 这 ...

  8. [leetcode 23]Merge k Sorted Lists

    1 题目 Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexi ...

  9. LeetCode——Merge k Sorted Lists

    Discription: Merge k sorted linked lists and return it as one sorted list. Analyze and describe its ...

随机推荐

  1. CentOS下 SVN版本控制的安装(包括yum与非yum)的步骤记录。

    一.yum安装 rpm -qa subversion //检查是否安装了低版本的SVN yum remove subversion //如果存储旧版本,卸载旧版本SVN 开始安装 yum -y ins ...

  2. fatal error LNK1120: 11 unresolved externals

    一般原因是函数声明没有定义,或者c++文件没有包含include进来

  3. 微信小程序页面带参数跳转

    页面传递参数的方式 data-para js获取参数

  4. 20165311《网络对抗技术》Exp1 PC平台逆向破解

    实验要求: 掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码 掌握反汇编与十六进制编程器 能正确修改机器指令改变程序执行流程 能正确构造payload进行bof攻击 实验内容: 手工修 ...

  5. 使用C#.NET列举组合数前N项和

    列举如下列所示的组合数前N项和,代码如下(递归方法里注意去重): static void Main(string[] args) { List<).ToList(); File.AppendAl ...

  6. JL MTK 安防网关的 wifi 吞吐测试

    基本配置:   删除桥接中的 eth3 : brctl delif  br0 eth3   设置eth3的ip: ifconfig  eth3  192.168.1.100   开启数据转发: ech ...

  7. day26:静态方法,类方法和反射

    1,包内部不要去尝试应用使用相对导入,一定不会成功的,他不支持这个机制,包内导入时一定要用绝对导入 2,复习接口类,抽象类,Python中没有接口类,有抽象类,抽象类是通过abc模块中的metacla ...

  8. AVL树的Java实现

    AVL树:平衡的二叉搜索树,其子树也是AVL树. 以下是我实现AVL树的源码(使用了泛型): import java.util.Comparator; public class AVLTree< ...

  9. [dev][python] 从python2进阶到python3你都需要了解什么

    基于python2快速掌握python3 0. 前言 这是一篇road map. 如果你会python2,读完这篇文章之后,你将掌握python3 1. 为什么会出现python3 Why Pytho ...

  10. PrimeNG之Input(一)

    Input之AutoComplete --自动完成功能是输入组件,提供实时的建议当打字. Import import {AutoCompleteModule} from 'primeng/primen ...