List可插入重复元素都是什么?CPU冗余的概念是什么?

来源:创视网 时间:2023-01-30 11:27:09

List

List元素按插入顺序,可插入重复元素,能够通过索引访问元素

1.ArrayList(部分源码)

基本属性

private static final int DEFAULT_CAPACITY = 10;//默认初始空间

private static final Object[] EMPTY_ELEMENTDATA = {};//空数组

private int size;//ArrayList中的元素个数

private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};//空数组

transient Object[] elementData; //ArrayList的本质就是该数组

private int size;//数组中元素数

1

2

3

4

5

6

构造器

//指定初始容量

public ArrayList(int initialCapacity) {

if (initialCapacity > 0) {//指定初始容量大于0

this.elementData = new Object[initialCapacity];//创建指定容量数组数组

} else if (initialCapacity == 0) {//等于构建空数组

this.elementData = EMPTY_ELEMENTDATA;

} else {//小于0抛出异常

throw new IllegalArgumentException("Illegal Capacity: "+

initialCapacity);

}

}

//默认创建一个空数组

public ArrayList() {

this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;

}

//将集合转为ArrayList

public ArrayList(Collectionc) {

elementData = c.toArray();//其他集合中的实现方法

if ((size = elementData.length) != 0) {//要转换的集合中元素个数不为0

if (elementData.getClass() != Object[].class)//当集合中元素不是Object类型时,转为Object

elementData = Arrays.copyOf(elementData, size, Object[].class);

} else {//集合中不存在元素,创建空数组

this.elementData = EMPTY_ELEMENTDATA;

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

添加元素

//在尾部添加元素

public boolean add(E e) {

modCount++;

add(e, elementData, size);

return true;

}

/**

CPU冗余:系统中主处理器并不会经常出现故障,但对称多处理器(SMP)能让多个CPU分担工作以提供某种程度的容错。

X 关闭

Copyright   2015-2022 科技讯版权所有   备案号:豫ICP备2021032478号-15   联系邮箱:897 18 09@qq.com