集合框架
Java集合框架包含的内容
Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中
-
接口(绿色部分):
-
具体类((蓝色部分)重点学习了:ArrayList、LinkedList、HashSet、HashMap)
-
算法:Collections 提供了对集合进行排序、遍历等多种算法实现
- Collection 接口存储一组不唯一,无序的对象
- List 接口存储一组不唯一,有序(插入顺序)的对象
- Set 接口存储一组唯一,无序的对象
- Map接口存储一组键值对象,提供key到value的映射
List接口的实现类(ArrayList,LinkedList)
ArrayList
ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高
LinkedList
LinkedList采用链表存储方式。插入、删除元素时效率比较高
List接口常用方法
LinkedList的特殊方法
Set接口
- Set接口存储一组唯一,无序的对象
- HashSet是Set接口常用的实现类
- Set中存放对象的引用
例:
Set set=new HashSet();
String s1=new String("java");
String s2=s1;
String s3=new String ("java");
set.add(s1);
set.add(s2);
set.add(s3);
System.out.println(set.size());
//输出 1 因为Set接口存储唯一的对象,在这里的s1,s2,s3都是相等的
Map接口
Map接口常用方法:
使用HashMap存储元素:
用迭代器遍历:
- 通过迭代器Iterator实现遍历
- 获取Iterator :Collection 接口的iterator()方法
- Iterator的方法
- boolean hasNext(): 判断是否存在另一个可访问的元素
- Object next(): 返回要访问的下一个元素
示例:
Set keys=map.keySet(); //取出所有key的集合
Iterator it=keys.iterator(); //获取Iterator对象
while(it.hasNext()){
String key=(String)it.next(); //取出key
Dog dog=(Dog)dogMap.get(key); //根据key取出对应的值
System.out.println(key+"\t"+dog.getStrain());
}