集合框架
集合框架:
java集合框架为我们提供了一套性能优良,使用方便的接口和类,他们都位于java.util包中
List
父类Collenction:接口储存一组不唯一、无序的对象
List接口:值不唯一,有序[插入顺序]
ArrayList
ArrayList:一组有序[值插入的顺序]并且可以重复的集合
储存方式:在堆里开辟了一段连续空间
语法:
不限定数据类型
List list = new ArrayList();
可以限定数据类型
List<String> list = new ArrayList<String>();
常用方法:
方法名称 | 说明 |
---|---|
boolean add() | 在列表末尾添加元素 |
void add(int index,Object o) | 指定下标添加元素 |
int size() | 放回元素个数 |
Object get(int index) | 返回指定索引的元素 |
boolean contains(Object o) | 判断是否有指定元素 |
boolean remmove(Object o) | 从列表中删除元素 |
boolean remmove(int index) | 指定下标删除 |
说明:当限定类型为Integer时,remove(下标)。
遍历:
for
for (int i = 0; i < listIntRemove.size(); i++) { System.out.println(listIntRemove.get(i));
}
foreach
for (int num : listIntRemove) {
System.out.println(num);
}
Iterator:
1、先将list对象转换为Iterator对象
Iterator<数据类型> it = list.iterator();
2、通过Iterator对象的hasNext方法判断是否有一个值
3 、通过Iterator对象的next方法取值
LinkedList
LinkedList特点:
- 采用链式存储规则,前一个会有一个指针指向下一个值的存储单位
- 适用于集合数据频繁修改
- 不适用频繁的读遍历操作集合
语法:
不限定数据类型
List arrayList = new LinkedList();
可以限定数据类型
List<String> arrayList = new LinkedList<String>();
常用方法:
方法名称 | 说明 |
---|---|
boolean add() | 在列表末尾添加元素 |
void add(int index,Object o) | 指定下标添加元素 |
int size() | 放回元素个数 |
Object get(int index) | 返回指定索引的元素 |
boolean contains(Object o) | 判断是否有指定元素 |
boolean remmove(Object o) | 从列表中删除元素 |
boolean remmove(int index) | 指定下标删除 |
Clear() | 清空元素 |
addFirst() 添加到第一个 addLast() 添加到最后一个
getFirst()得到第一个 getLast得到最后一个
遍历:
for
for (int i = 0; i < listIntRemove.size(); i++) { System.out.println(listIntRemove.get(i));
}
foreach
for (int num : listIntRemove) {
System.out.println(num);
}
Iterator:
1、先将list对象转换为Iterator对象
Iterator<数据类型> it = list.iterator();
2、通过Iterator对象的hasNext方法判断是否有一个值
3 、通过Iterator对象的next方法取值
Vector
所有的操作跟ArrayList一样,存储方式,读写方式
区别ArrayList:Vector线程是安全的,ArrayList线程不安全
Set
父类Collenction:接口储存一组不唯一、无序的对象
Set接口:无序[不按照插入的顺序排序],并且不重复
1、操作:类似List
2、实现:
HashSet:存储方式类似数组,插入数据的是没有任何顺序
TreeSet:以树形结构图存储,实现了SortedSet接口
排序,默认从小到大的
3、小技巧:通过Set给List去重
Map:
1、存储方式:key:value
2、实现类:
HashMap:线程不安全,速度快
语法
语法:非泛型
Map list = new HashMap();
泛型
Map<String,String> list = new HashMap<String,String>();
可以限定数据类型
Hashtable:操作类似HashMap,线程安全
ConcurrentMap:操作类似HashMap,线程安全,
实现安全的方式比hashtable更优,针对线程安全部分代码做了优化
TreeMap:1、对key进行排序;2不能以null为key
3.常用方法
方法名 | 说明 |
---|---|
put(key,value) | 键-值,存储元素 |
get(key) | 指定键获取值 |
remove(key) | 根据键删除元素 |
size() | 返回元素个数 |
keySet() | 返回键的集合 |
values() | 返回值的集合 |
containsKey | 指定的键判断是否存在 |
isEmpty() | 判断是否非空 |
clear() | 清空所有映射关系 |
集合如果要限定数据类型,只能放引用数据类型
类
Collection:
1、是List和Set的父类
2、是interface
Collections:是操作集合的工具类
基本数据类型-引用
int—Integer
long—Long
double—Double
float----Float
char–Character