Java集合框架
- Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中
关系框架图:
接口特点:
- List 接口存储一组不唯一,有序(插入顺序)的对象
- Set 接口存储一组唯一,无序的对象
- Map接口存储一组键值对象,提供key到value的映射
List接口的实现类 :
- ArrayList实现了长度可变的数组,在内存中分配连续的空间,遍历元素和随机访问元素的效率比较高
- LinkedList采用链表存储方式,插入、删除元素时效率比较高
ArrayList常用方法 :
boolean add(Object o) //在列表的末尾顺序添加元素,起始索引位置从0开始
void add(int index,Object o) //在指定的索引位置添加元素。索引位置必须介于0和列表中元素个数之间
int size() //返回列表中的元素个数
Object get(int index) //返回指定索引位置处的元素。取出的元素是Object类型,使用前需要进行强制类型转换
boolean contains(Object o) //判断列表中是否存在指定元素
boolean remove(Object o) //从列表中删除元素
Object remove(int index) //从列表中删除指定位置元素,起始索引位置从0开始
LinkedList常用方法:
void addFirst(Object o) //在列表的首部添加元素
void addLast(Object o) //在列表的末尾添加元素
Object getFirst() //返回列表中的第一个元素
Object getLast() //返回列表中的最后一个元素
Object removeFirst() //删除并返回列表中的第一个元素
Object removeLast() //删除并返回列表中的最后一个元素
Set接口:
- Set接口存储一组唯一,无序的对象
- HashSet是Set接口常用的实现类
- 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());
迭代器Iterator:
获取Iterator :Collection 接口的iterator()方法
Iterator的方法
- boolean hasNext(): 判断是否存在另一个可访问的元素
- Object next(): 返回要访问的下一个元素
list
Iterator<String> iterator = list.iterator();
// iterator.hasNext() 返回boolean true 存在下一条数据
while (iterator.hasNext()){
String str = iterator.next();
System.out.println(str);
}
set
Iterator<String> iterator = set.iterator();
// iterator.hasNext() 返回boolean true 存在下一条数据
while (iterator.hasNext()){
String str = iterator.next();
System.out.println(str);
}
map.values
Iterator<String> values = stringMap.values().iterator();
while (values.hasNext()){
System.out.println(values.next());
}
map.keySet
Iterator<String> iteratorkeys = stringMap.keySet().iterator();
while (iteratorkeys.hasNext()){
String key = iteratorkeys.next();
System.out.println("key:"+key+",value:"+stringMap.get(key));
}