0目录
集合框架
1.集合框架简介 |
1.集合框架简介
1.1 为什么使用集合框架 缘由:数组在创建的时候,会定义数组的长度,而数组的长度是不变的,所以导致数组的赋值及创建会有内存浪费的现象。于是集合作为可以更改长度的数组,可以解决内存浪费的现象。 |
1.2 Java集合框架架构图 (1)集合有两个父接口:collection和Map (2)Collection有两个子接口:List和Set (2)List有两个常见的实现类:ArrayList和LinkedList (3)Set有两个常见的实现类:HashSet和TreeSet (4)Map有两个常见的实现类:HashMap和TreeMap |
1.3 Java集合框架特点 (1)List 接口特点:存储对象不唯一(可重复),有序(插入顺序) (2)Set 接口特点:存储对象唯一(不可重复),无序 (3)Collection 接口特点:存储对象不唯一,无序 //不常用 (4)Map 接口特点:存储一对对象【键值对】(key键--value值),提供key到value的映射 |
2.List接口
2.1 List接口的实现类种类(常见的两种实现类的区别) (1)ArrayList 特点:数组形式存储;查询效率高,但是增、删、改的效率高、极低 (2)LinkedList 特点:链表形式存储;’查询效率极低,但是增、删、改的效率高 |
2.2 ArrayList集合类 (1)ArrayList<Object> arrayList = new ArrayList<>(); 实例化集合对象 (2)添加数据的方式: //第一种添加对象方法 (3)删除数据的方式: //删除对象两种方式 (4)查询数组的方式 //第一种获得集合中的元素的方法(利用for循环遍历) 拓展: arrayList.size()是获取数组的长度的方法 arrayList.get()是获取数组的某个角标位置的元素 |
2.3 ArrayList集合类(泛型) 泛型:<>用来指定集合存放的数据类型(只能存放引用数据类型,要存放基本数据类型要用对应的包装类实现) 泛型存放对象(使用频率最高): |
2.4 LinkedList集合类 LinkedList存放Object类型数据 LinkedList存放对象类型数据: 如果使用到LinkedList中独有的方法addFrist()等,则不可以使用List<User>,需要强制转换( ( (LinkedList<User>) users ).addFirst(u1); )或者改成LinkedList |
3.Set接口
要点1:iterator() 获取迭代器对象 要点4:set集合是没有顺序的,且数据是不可重复的 要点5:用迭代器的方式遍历集合元素 Set泛型:String类型 Set泛型:对象类型 |
3.Map接口
Map集合类:获取key值,获取value;迭代器获取key和value Map泛型:Object类型 Map泛型:对象类型 |
实战1:遍历List<Map<String,Object>>
实战2:遍历List<List<String>>
实战:遍历Map<String,Map<String,Object>> |