为什么使用集合框架

如果并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象——可以使用Java集合框架

Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中

JAVA集合框架包含的内容

java jsobject 获取两层数据结构_集合框架

java jsobject 获取两层数据结构_迭代器_02


Collection接口存储一组不唯一,无序的对象
List接口存储一组不唯一,有序的(插入顺序)的对象
Set接口存出一组1唯一,无序的对象
Map接口存储一组键值对象,提供key到value的映射

java jsobject 获取两层数据结构_集合框架_03

Set接口

Set接口存储一组唯一,无序的对象
HashSet是Set接口常用的实现类
Set中存放对象的引用

集合框架有何好处

①可改变长度的数组

②可以通过size()方法获取非null对象个数

③插入add()、删除remove()、遍历、查询对象get(index)时,减少代码量

ArrayList和LinkedList有何异同

前者遍历及随机访问效率高,后者插入和删除效率高

java jsobject 获取两层数据结构_java_04

List常用方法

java jsobject 获取两层数据结构_集合框架_05

LinkedList特殊方法

java jsobject 获取两层数据结构_迭代器_06

Map接口

Map接口专门处理键值映射数据的存储,可以根据键实现对值的操作

最常用的实现类是HashMap

java jsobject 获取两层数据结构_java_07

Map接口常用方法

java jsobject 获取两层数据结构_集合框架_08

迭代器Iterator

如何遍历Map集合呢?

①方法1:通过迭代器Iterator实现遍历

1、获取Iterator :Collection接口的iterator()方法

 2、Iterator的方法

              ①boolean hasNext(): 判断是否存在另一个可访问的元素

              ②Object next(): 返回要访问的下一个元素

②方法2:增强for循环

使用Iterator和增强型for循环遍历Map集合

遍历Map

①迭代器Iterator
Set keys=dogMap.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());
    }

②增强for循环

语法

for(元素类型t  元素变量x : 数组或集合对象){
         引用了x的java语句
}