java集合中提供了一套优良的接口、类,它们位于util包中,只需导入即可。
Collection 接口:定义了存取一组对象的方法,子接口set、list、Map存储方法。
一、set 中数据对象没有顺序,而且不可重复。
二、list 中数据对象有顺序,可重复。
Map 接口:定义了存储“健Key”,“value”映射的方法
Arraylist :底层实现数组,线程不安全,效率高,查询快,修改、插入、删除慢!
LinkeList:底层链表,线程不安全,效率高,查询慢,修改、插入、删除快!
vector:线程安全,效率高
1、list:不唯一,有序
arraylist:元素不唯一,有序列,遍历元素访问,随机访问效率高
linkelist:链表存储元素,唯一,删除、修改效率高
2、set:唯一,无序列
hashSet:
treeSet:
3、Map存储一组对象,提供键值对保存
hashMap:允许null值
treeMap:不允许null值
三、ArrayList常用方法:
add();在尾部追加一个元素,
size();获取有效的元素个数
add(int,index);
clear();移除所有
get(index);指定获取
Remoe(index);按指定的下标进行移除
isEmpty();判断是否为空
boolean contains(object o);判断列表中是否存在指定的元素
set(index,e)指定的元素下标,替换该位置的元素
四、linkelist常用方法:插入、删除频繁操作
void addFirst(object o)在列表头部添加元素
void addlast(object o)在尾部添加
Objest getFirst()返回列表中第一个元素
Objest getLast() 返回列表中最后一个元素
Objest removeFirst()删除列表中第一个开头的元素
Objest removeLast()删除列表中最后的一个元素
五.Set迭代器方法
实现类:HashSet、TreeSet
使用步骤:
1.创建 Set set = new HashSet()
2.常用方法:
set.add(Objest o);往set集合中添加对象
set.Size()返回有效的集合对象
注意:set中没有get方法,使用迭代器访问数据
1.创建迭代器:lterator i = set.iterator();
常用方法:hasNext();判断迭代器中是否拥有下一条数据。
Next();获取吓一跳数据。
迭代方法①
for(Objest objest : set){对象 对象名 : 集合
Integer i = (Integer)objest;类型强制转换
}
迭代方法②
Iterator i = set.iterator();创建迭代器
while(i.hasNext()){ 判断是否有吓一跳数据
Integer num = (Integer)i.next(); 获取下一条数据
}
迭代方法③
for(Iterator it = set.itergor()//获取迭代器; it.hasNext();获取下一条数据){
Objest对象 objest = (Objest对象)it.next();强制转换
}
六.Map接口
常用方法:
put("键值key","value元素");使用键值对储存数据
get(键值key);获取元素值
remove(键值key);删除元素
containskey(键值key);判断是否有指定的元素
size();返回有效的集合元素
keySet();返回键集合值
values();返回键值对集合
七.泛型
1.作用:控制集合中存放的数据,
List<Objest o> Li = new ArralList<Objest o>()
2.问题:泛型中如何存放多种对象
用多态、接口
List<Objest父类、接口类 o> Li = new ArralList<Objest父类、接口类 o>()
Li.add(子类、接口类)
泛型指定是父类,那么所有该父类的子类则都可以通过检查
泛型指定的是接口,那么所有该接口的实现类都可以通过检查