day15-集合框架

0目录

集合框架

1.集合框架简介
2.List接口
3.Set接口
4.Map接口

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)添加数据的方式:

//第一种添加对象方法
arrayList.add(1);
arrayList.add(true);
arrayList.add("我是中国人");
arrayList.add(180.8);
//第二种添加对象方法,通过角标添加
arrayList.add(0,"替换");
arrayList.add(5,123);

(3)删除数据的方式:

//删除对象两种方式
通过元素删除:arrayList.remove("替换");
通过角标删除:arrayList.remove(0);超过集合长度会报错越界

(4)查询数组的方式

//第一种获得集合中的元素的方法(利用for循环遍历)
for (int i = 0; i < arrayList.size(); i++) {
    System.out.println(arrayList.get(i));
}
System.out.println();
//第二种获得集合中的元素的方法(增强for循环遍历)
for (Object o:arrayList){
    System.out.println(o);
}

拓展:

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()  获取迭代器对象
要点2:hasNext()  判断是否有下一个值
要点3:next()  获取下一个值

要点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>>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值