Collection
六种操作:增加 删除 修改 查询 判断 遍历
Collection接口是集合体系的顶层接口,它是用来定义集合的最基本的操作行为的。
增加:boolean add( Object element ) 把当前的element元素添加到当前的集合中,如果添加没有成功返回false。
删除 :clear() 清空集合中所有元素,会让集合中的size变成0
remove(Object obj) 删除集合中指定的元素
判断:contains(Object obj ) 判断当前obj元素是否在集合中存在
迭代:
集合公共遍历方式:
要遍历集合,首先要做事情先判断集合中有没有元素,有元素就把当前这个元素取出来,然后再判断有没有,如果还有继续取出。直到把所有元素全部取出。
Iterator接口定义了三个方法:迭代器
hasNext() 问集合中有没有下一个元素; 调用这个方法会返回一个boolean类型的值,如果有则返回true, 没有返回false
next() 取出当前这个元素;, 取值
remove() 删除当前的元素;
list集合
List集合存储元素的特点:有序,可重复
List接口的实现类:ArrayList、LinkedList
ArrayList实现了长度可变的数组,在内存中分配连续的空间,遍历元素和随机访问元素的效率比较高 - 查询比较快
LinkedList采用链表存储方式,插入、删除元素时效率比较高
ArrayList
ArrayList集合的特点:底层使用可变数组,存储的元素:有序,可重复。
不足:查询快,增删慢。
常用方法:
remove(Object obj) 删除集合中指定的元素
Object remove(int index) 删除集合中指定位置上的元素,并返回被删除的元素 。删除时指定的下标的位置一定要保证有元素。
clear() 清空集合中所有元素,会让集合中的size变成0。
注意:使用List调用remove如果指定的是值,这时这个值一定是下标(默认),因此如果要删除集合中存放的包装类型的数据, 这时需要把这个int值包装成对应的Integer类型,Integer.valueOf(int)。
修改:
Object set(int index, E element) 修改集合中指定位置上的数据。 原来的元素就被删除掉了。返回被替换的那个元素。
查询:
get(int index) 返回此列表中指定位置上的元素
其他一些方法:
size() 求一个集合的长度
isEmpty(), 判断这个集合是不是空的,如果为空集合返回true,否则为false
boolean contains(Object o) ,判断列表中是否存在指定元素
遍历:For Foreach Iterator
LinkedList
LinkedList也是List接口的实现类
它的底层采用的链接列表(链表),由于链表有头和有尾的数据结构,因此LinkedList集合中定义了自己的特有方法,这些方法都围绕链表的头和尾设计的。新增、删除元素时,效率比较高。
实现新闻标题序号的自加
自加的方法:
public int addId(List list){
//定义一个最大值用来比较
int max=0;
//判断是否为空
if(list.isEmpty()){
return 1;
}else{
// 循环比较
for(int i=0;i<list.size();i++){
NewsTitle s = (NewsTitle)list.get(i);
int a = s.getID();
if(a>max){
max = a;
}
}
// 返回新的序号
return ++max;
}
}
实现效果: