集合框架:
为什么使用集合框架:
如果并不知道程序运行时会需要多少对象,或者需要
更复杂方式存储对象——可以使用Java集合框架
java集合框架中的接口:Collection、List 、Set、Map
Collection 接口存储一组不唯一,无序的对象;
List 接口存储一组不唯一,有序(插入顺序)的对象;
Set 接口存储一组唯一,无序的对象;
Map接口存储一组键值对象,提供key到value;
java 集合框架中的类:ArrayList 、LinkedList、 HashSet 、TreeSet、 HashMap 、TreeMap
List接口
ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高
LinkedList采用链表存储方式。插入、删除元素时效率比较高
ArrayList数组:
创建:List 名字=new ArrayList();
删除:名字.remove(下标);
名字.remove(对象名);
查找:名字.contains(对象名)
List 接口常用方法:
1、boolean add(Object o):在列表的末尾顺序添加元素,起始索引位置从0开始
2、void add(int index,Object o):在指定的索引位置添加元素。索引位置必须介于0和列表中元素个数之间
3、int size():返回列表中的元素个数
4、Object get(int index):返回指定索引位置处的元素。取出的元素是Object类型,使用前需要进行强制类型转换
5、boolean contains(Object o):判断列表中是否存在指定元素
6、boolean remove(Object o):从列表中删除元素
7、Object remove(int index):从列表中删除指定位置元素,起始索引位置从0开始
LinkedList集合:
创建:LinkedList 名字=new LinkedList();
添加首尾:dogs.addFirst(d1);
dogs.addLast(d2);
删除首尾:dogs.removeFirst();
dogs.removeLast();
获取首尾:Dog dogLast= (Dog)dogs.getLast();
Dog dogFirst= (Dog)dogs.getFirst();
LinkedList的特殊方法:
1、void addFirst(Object o) 在列表的首部添加元素
2、void addLast(Object o) 在列表的末尾添加元素
3、Object getFirst() 返回列表中的第一个元素
4、Object getLast() 返回列表中的最后一个元素
5、Object removeFirst() 删除并返回列表中的第一个元素
6、Object removeLast() 删除并返回列表中的最后一个元素
Map接口:
HashMap存储元素:
Map map=new HashMap();
map.put(1,“王旭”);
map.put(2,“李尧”);
map.put(3,“李思”);
map.put(4,“王五”);
map.remove(3);//根据键值删除
if (map.containsKey(3)){//根据键值查看
System.out.println("zai");
}else {
System.out.println("buzai");
}
输出(迭代器Iterator):
Set set=map.keySet();
Iterator it=set.iterator();
while (it.hasNext()){
int key=(int)it.next();
String value=(String)map.get(key);
System.out.println(key+"\t"+value);
}
Map接口常用方法:
1、Object put(Object key, Object val) 以“键-值对”的方式进行存储
2、Object get (Object key) 根据键返回相关联的值,如果不存在指定的键,返回null
3、Object remove (Object key) 删除由指定的键映射的“键-值对”
4、int size() 返回元素个数
5、Set keySet () 返回键的集合
6、Collection values () 返回值的集合
7、boolean containsKey (Object key) 如果存在由指定的键映射的“键-值对”,返回true
泛型集合
用泛型改写了集合框架中的所有接口和类
List dogs = new ArrayList();
Dog dog = dogs.get(2);//无需强转
泛型改写迭代器Iterator
Set keys=dogMap.keySet(); //取出所有key的集合
Iterator it=keys.iterator(); //获取Iterator对象
while(it.hasNext()){
String key=it.next(); //取出key
Dog dog=dogMap.get(key); //根据key取出对应的值