关于集合的remove


public class collectionsTest {
public static void main(String[] args) {

TreeSet<Integer> set = new TreeSet<Integer>();
ArrayList<Integer> list = new ArrayList<Integer>();
Vector<Integer> vector = new Vector<Integer>();

char ch='a';
for (int i = 0; i < 10; i++) {
set.add(10+i);
list.add(10+i);
vector.add(10+i);
}
System.out.println("初始化后set里的值为:" + set.toString());
System.out.println("初始化后list里的值为:" + list.toString());
System.out.println("初始化后vector里的值为:" + vector.toString());

for (int i = 0; i < 5; i++) {
set.remove(i);
list.remove(i);
vector.remove(i);

}
System.out.println("此时set的值为" + set.toString());
System.out.println("此时后list的值为" + list.toString());
System.out.println("此时后vector的值为" + vector.toString());

}

}

先看个代码!!
这是别人的代码!!
自己分析下!1
先看输出

初始化后set里的值为:[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
初始化后list里的值为:[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
初始化后vector里的值为:[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
此时set的值为[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
此时后list的值为[11, 13, 15, 17, 19]
此时后vector的值为[11, 13, 15, 17, 19]

ArrayList和Vector都是继承与java.util.AbstractList<E>
的抽象类!!都是以链表的数据结构存在的!
都有方法 remove(int index) remove(Object o)
有两种方法!根据索引去除 集合里的值 和直接去除对象值!

int numMoved = size - index - 1;
if (numMoved > 0)
System.arraycopy(elementData, index+1, elementData, index, numMoved);


每remove一次后都有一次 指针的移动!!
也就是这是数组已不是刚才那个数组了!所有的元素补空了删除元素的空缺!!

注意这个函数的运用
System.arrayCoay();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值