1、List
特有方法,可以操作下标
增
//void add(int index, E element)
list.add("java");
//boolean addAll(int index, Collection<? extends E> c)
删
//E remove(int index) 这里可以将E暂时理解成Object
list.remove(0);
改
//E set(int index, E element)
list.set(0,"java")
查
//ListIterator<E> listIterator
//获取迭代器对象
ListIterator iterator = list.listIterator();
//从左到右遍历
while (iterator.hasNext()) {
Object object = (Object) iterator.next();
System.out.println("从左到右:"+object);
}
//从右到左遍历
while (iterator.hasPrevious()) {
Object object = iterator.previous();
System.out.println("从右到左:"+object);
}
//注意事项:
while (iterator.hasNext()) {
Object object = (Object) iterator.next();
System.out.println("从左到右:"+object);
//需求:将list中的html删除
if (object.equals("html")) {
//在使用迭代器遍历集合期间,使用list的删除方法直接删除元素,有可能发生错误,所以不要这样做,
//使用迭代器自带的方法进行删除
//list.remove("html");
//注意:在ListIterator中包含remove,set,add方法.但是注意最好不要同时使用.
iterator.remove();
// iterator.set(e);
// iterator.add(e);
}
}
删除全部对象
//void clear()
list.clear()
2、Vector
于list不同点:遍历时候使用的枚举器
、//遍历--枚举器
//获取枚举器对象
Enumeration enumeration = vector.elements();
//遍历
while (enumeration.hasMoreElements()) {
Object object = (Object) enumeration.nextElement();
System.out.println(object);
}
3、Linked List
添加
linkedList.add("iOS");//添加
//addFirst() 始终在首位添加
linkedList.addFirst("a");
//addLast()始终在末尾添
linkedList.addLast("a");
//add(int index, E element) 在此列表中指定的位置插入指定的元素
linkedList.add(1, "a");
//offerFirst(E e) 将指定元素添加到此列表的末尾
linkedList.offerFirst("a");
//offerLast(E e) 将指定元素添加到此列表的末尾
linkedList.offerLast("a");
获取
// getFirst()//获取的对象不存在会发生异常:NoSuchElementException
// getLast()
linkedList.getFirst()
// peekFirst()//获取的对象不存在会返回null
// peekLast()
删除
// removeFirst()//删除的对象不存在会发生异常
// removeLast()
linkedList.removeFirst()
// pollFirst()//删除的对象不存在会返回null
// pollLast()
清空
//void clear()
list.clear()
4、List的去重----contains
5、Set
1. Hash Set
a、只能实现去重,不能排序
b、对于自定义的类想要按照自己知道的规则去重,必须重写hashcode和equals方法
通过调用元素内部的hashCode和equals方法实现去重,首先会调用hashCode方法,比较两个元素的哈希码值,如果哈希码值不同直接认为是两个对象,停止比较。如果相同,再去使用equals比较,返回true认为是一个对象,返回false认为是两个对象
2.Tree Set
实现去重和排序
a、让元素去实现Comparable接口,重写compareTo方法------默认排序
b、创建比较器类,让他实现Comparetor接口,重写compare方法,再将比较器对象作用于TreeSet,内部的元素会按照比较器进行比较.---人工排序