------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
1、Collection
List:ArrayList,LinkedList,Vector //特点:元素的有序的,元素可以重复。因为该集合
体有索引
Set:HashSet,TreeSet //特点:元素无序,元素不可重复
2、ArrayList 集合
添加 ArrayList .add(str)
删除 ArrayList .clear()
判断 ArrayList .contains(str)
获取 ArrayList .size()
取交集 arr.retainAll(arr2) //取交集,arr中与arr2中相同元素
去交集 arr.removeAll(arr2) //删除arr中与arr2中相同元素
3、迭代器:Iterator
什么是迭代器?
其实是集合的取出元素的方式。
ArrayList arr=new ArrayList();
...
Iterator it=arr.iterator()//获取迭代器,用于取出集合中的元素
while(it.hasNext())//判断有无下一个。 it.hasPrevious反向取
{
sop(it.next());//依次取出 it.previous()
}
4、List 特有的方法:凡是可以操作角标的方法都是该体系特有的方法。
增 add(index,element);addAll(index,Collection)
删 remove(index)
改 set(index,element)
查 get(index);subList(from,to);listIterator();
List集合特有的迭代器。ListIterator是Iterator的子接口
在迭代时,不可以通过集合对象的方法操作集合中的元素,
因为会发生ConcurrentModificationException异常(并发异常)
所以,在迭代时,只能用迭代器的方法操作元素,可是Iterator方法有限,
只能对元素进行判断、取出、删除的操作
如果想要其他的操作如添加、修改等,就需要使用其子接口,ListIterator
该接口只能通过List集合的ListIterator方法获取
5、List常见对象
ArrayList :底层的数据结构使用的是数组结果。特点:查询速度很快,但是增删稍慢,线
程不同步-》效率高。默认长度为10,超过延长5
LinkedList :底层使用的链表数据结构。特点:增删速度很快,查询稍慢。
Vector :底层的数据结构。线程同步。被ArrayList替代,默认长度为10,超过延长10
6、Vector :
枚举是Vector特有的取出方式
发现枚举和迭代器很象
其实枚举和迭代是一样的
因为枚举的名称以及的方法的名称都过长。
所以被迭代器取代了。
Vector v=new Vector();
v.add("01");
v.add("02");
v.add("03");
v.add("04");
Enumeration e=v.elements();
while (e.hasMoreElements()) {
System.out.println(e.nextElement());
7、(面试题)
LinkedList特有方法
addFirst() addLast()
getFirst() getLast()// 获取第一个(最后一个)元素
如果集合中没有元素,会出现NoSuchElementException
removeFirst() removeLast()//获取第一个(最后一个)元素,并将其删除
如果集合中没有元素,会出现NoSuchElementException
在jdk1.6出现了迭代方法
offerFirst(); offerLast();
添加
peekFirst(); peekLast();
获取第一个(最后一个)元素,如果集合中没有元素,会返回null
pollFirst() pollLast()
获取第一个(最后一个)元素,并将其删除,如果集合中没有元素,会返回null
8、(注)al.add(new Person("wang", 1));// al.add(object obj);//object obj=new Person
("wang", 1);此时升级。
9、set:元素无序(按地址值存),不可重复。
HashSet: 底层数据结构是哈希表
HashSet是如何保证元素唯一性呢?
是通过元素的两个方法,hashCode和equals来完成。
如果元素的HashCode值相同,才会判断equals是否为true.
如果元素的hashcode值不同,不会调用equals
注意:对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashcode和equals方法。
TreeSet:
1、Collection
List:ArrayList,LinkedList,Vector //特点:元素的有序的,元素可以重复。因为该集合
体有索引
Set:HashSet,TreeSet //特点:元素无序,元素不可重复
2、ArrayList 集合
添加 ArrayList .add(str)
删除 ArrayList .clear()
判断 ArrayList .contains(str)
获取 ArrayList .size()
取交集 arr.retainAll(arr2) //取交集,arr中与arr2中相同元素
去交集 arr.removeAll(arr2) //删除arr中与arr2中相同元素
3、迭代器:Iterator
什么是迭代器?
其实是集合的取出元素的方式。
ArrayList arr=new ArrayList();
...
Iterator it=arr.iterator()//获取迭代器,用于取出集合中的元素
while(it.hasNext())//判断有无下一个。 it.hasPrevious反向取
{
sop(it.next());//依次取出 it.previous()
}
4、List 特有的方法:凡是可以操作角标的方法都是该体系特有的方法。
增 add(index,element);addAll(index,Collection)
删 remove(index)
改 set(index,element)
查 get(index);subList(from,to);listIterator();
List集合特有的迭代器。ListIterator是Iterator的子接口
在迭代时,不可以通过集合对象的方法操作集合中的元素,
因为会发生ConcurrentModificationException异常(并发异常)
所以,在迭代时,只能用迭代器的方法操作元素,可是Iterator方法有限,
只能对元素进行判断、取出、删除的操作
如果想要其他的操作如添加、修改等,就需要使用其子接口,ListIterator
该接口只能通过List集合的ListIterator方法获取
5、List常见对象
ArrayList :底层的数据结构使用的是数组结果。特点:查询速度很快,但是增删稍慢,线
程不同步-》效率高。默认长度为10,超过延长5
LinkedList :底层使用的链表数据结构。特点:增删速度很快,查询稍慢。
Vector :底层的数据结构。线程同步。被ArrayList替代,默认长度为10,超过延长10
6、Vector :
枚举是Vector特有的取出方式
发现枚举和迭代器很象
其实枚举和迭代是一样的
因为枚举的名称以及的方法的名称都过长。
所以被迭代器取代了。
Vector v=new Vector();
v.add("01");
v.add("02");
v.add("03");
v.add("04");
Enumeration e=v.elements();
while (e.hasMoreElements()) {
System.out.println(e.nextElement());
7、(面试题)
LinkedList特有方法
addFirst() addLast()
getFirst() getLast()// 获取第一个(最后一个)元素
如果集合中没有元素,会出现NoSuchElementException
removeFirst() removeLast()//获取第一个(最后一个)元素,并将其删除
如果集合中没有元素,会出现NoSuchElementException
在jdk1.6出现了迭代方法
offerFirst(); offerLast();
添加
peekFirst(); peekLast();
获取第一个(最后一个)元素,如果集合中没有元素,会返回null
pollFirst() pollLast()
获取第一个(最后一个)元素,并将其删除,如果集合中没有元素,会返回null
8、(注)al.add(new Person("wang", 1));// al.add(object obj);//object obj=new Person
("wang", 1);此时升级。
9、set:元素无序(按地址值存),不可重复。
HashSet: 底层数据结构是哈希表
HashSet是如何保证元素唯一性呢?
是通过元素的两个方法,hashCode和equals来完成。
如果元素的HashCode值相同,才会判断equals是否为true.
如果元素的hashcode值不同,不会调用equals
注意:对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashcode和equals方法。
TreeSet: