java中的集合框架
一、java集合的接口
1、List接口的实现类
1、ArrayList
1、特点
是一组有序、可以重复的集合
2、语法
ArrayList 对象名 = new ArrayList();
或:List 对象名 = new ArrayList();
3、存储方式
在堆里面开辟了一个连续的空间
4、常用的方法
添加数据:add()
取数据:get()
得到长度:size()
删除值:remove()
5、下标
从0开始,到长度减1结束
6、遍历的方式
for(int i = 0;i<list.size;i++){ //for循环遍历
System.out.println(list.get());
}
for(数据类型 变量名 :对象名){ //foreach循环遍历
System.out.println(变量名);
}
Iterator<数据类型> it = list.iterator(); //Iterator
while(it.hasNext()){
System.out.println(it.next());
}
2、LinkedList
1、特点
1、采用链式存储的规则
2、适用于集合频繁修改
2、常用方法
清空:clear()
获得第一个值:getFirst()
添加数据:add()
添加到最后一个:addLast()
添加第一个:addFirst()
获得长度:size()
3、语法
LinkedList 对象名 = new LinkedList()
4、遍历的方式
for(int i = 0;i<linkedlist.size;i++){ //for循环遍历
System.out.println(list.get());
}
for(数据类型 变量名 :对象名){ //foreach循环遍历
System.out.println(变量名);
}
Iterator<数据类型> it = linkedlist.iterator(); //Iterator
while(it.hasNext()){
System.out.println(it.next());
}
3、Vector
1、和ArrayList的区别
ArrayList线程是不安全的,Vector线程比较安全。
2、Set接口的实现类
1、HashSet
1、特点
不能用下标取值,因为set接口是存储一组无序、且不重复的数据
2、遍历方式
for(数据类型 变量名 :对象名){ //foreach循环遍历
System.out.println(变量名);
}
Iterator<数据类型> it = set.iterator(); //Iterator遍历
while(it.hasNext()){
System.out.println(it.next());
}
2、TreeSet
1、特点
以树状方式存储,还实现了接口的排序
2、遍历方式
for(数据类型 变量名 :对象名){ //foreach循环遍历
System.out.println(变量名);
}
Iterator<数据类型> it = treeSet.iterator(); //Iterator遍历
while(it.hasNext()){
System.out.println(it.next());
}
3、set接口的特点
可以用来给集合去重,也可以用来排序。
3、Map接口
1、存储方式
Key,Value的方式
2、HashMap
1、特点
1、线程不安全,速度快
2、key和value可以是null
3、key可以重复
2、常用的方法
put():添加数据
get():根据键获取相关的值
remove():删除值
size():集合的长度
keySet():获得键的集合
values():获得值的集合
containsKey():判断键对应的值是否存在
isEmpty():判断是否为空
clear():清空集合
3、HashTable
1、特点
1、Key和Value不能null,可以有重复key
2、线程比较安全
2、遍历
for(数据类型 变量名 :对象名){ //foreach循环遍历
System.out.println(变量名); //遍历所有的key
}
Iterator<数据类型> it = hashTable.iterator(); //Iterator遍历
while(it.hasNext()){
System.out.println(it.next());
}
4、ConcurrentMap
1、特点
比HashMap更优,针对线程安全部分代码做了优化
5、TreeMap
1、特点
1、会对key进行排序
2、key不能为null
2、存储方式
以树状形状结构存储
3、遍历
for(数据类型 变量名 :对象名){ //foreach循环遍历
System.out.println(变量名); //遍历所有的key
}
Iterator<数据类型> it = treepMap.iterator(); //Iterator遍历
while(it.hasNext()){
System.out.println(it.next());
}