java 随机 集合 子集_Java Collections 集合类

List

ArrayList

随机存取效率高(get & set)

插入和删除较慢(除末尾)

LinkedList

最优顺序存取

插入和删除较快

随机存取较慢

larger feature set?更多的属性?

ArrayList

Method

构造方法

共三种

默认构造方法, 大小指定为10

public ArrayList() {

this(10);

}

- 指定大小构造方法

public ArrayList(int initialCapacity) {

super();

if (initialCapacity < 0)

throw new IllegalArgumentException("Illegal Capacity: "+ initialCapacity);

this.elementData = (E[])new Object[initialCapacity];

}

- 指定集合内容的构造方法

public ArrayList(Collection extends E> c) {

elementData = c.toArray();

size = elementData.length;

// c.toArray might (incorrectly) not return Object[] (see 6260652)

if (elementData.getClass() != Object[].class)

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

}

######常用方法

- ```contains(Object o)``` 判断是否包含某元素,使用equals对比

``` java

boolean isContain = list.contains(object);

remove(Object o) 删除指定对象,参数为对象的引用

list.remove(reference);

indexOf(Object o) 获取指定对象的位置,参数为对象的引用

// 返回-1代表未发现元素

int index = list.indexOf(reference);

subList(int from, int to) 获取子集

list.subList(3, 9);

这里要注意,操作子集,会对原List进行影响。

如要对子集进行add/remove等操作,可以这样:

``` java

List sub = new ArrayList(list.subList(3, 9));

containsAll(Collection> c) 判断列表中是否包含指定collection的所有元素

list.containsAll(sub);

removeAll(Collection> c) 批量删除指定的元素

list.removeAll(sub);

set(int index, E element) 替换index位置的元素,并返回之前的元素

list.set(9, e);

toArray(), toArray(T[] t) List转化为数组,一般用第二个

String[] array = new String[list.size()];

list.toArray(array);

扩容

扩容后的大小为原大小的1.5倍加1:

int newCapacity = (oldCapacity * 3)/2 + 1;

To Be Continue...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值