day19知识点总结:集合框架提供的接口和方法 List、ArrayList、LinkedList、Map、HashMap

集合框架(结束oop)

集合框架的好处:容量可扩展
java集合框架提供一组 性能优良的 接口和类 他们位于java.util包中
注:LinkedList、ArrayList 、HashMap存取元素需要是 同类型的
在这里插入图片描述
Collection、List、Set、Map是接口
ArrayList、LinkedList、HashMap是实现类
面试问:Collection和Collections的区别?
答:Collection是接口,Collections是算法。

Collection接口存储一组不唯一、无序的对象。
在这里插入图片描述

不唯一:可以在集合里存很多个a
无序:存进去之后不会按照原来的顺序

List接口存储一组不唯一、有序的对象。
导包的时候要导java.util下面的
在这里插入图片描述
在这里插入图片描述

ArrayList实现长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高。(创建ArrayList集合对象,默认创建的初始容量是10)
在这里插入图片描述

LinkedList采用链表存储方式。插入、删除元素时效率比较高。(双向链表)
在这里插入图片描述

Set接口存储一组唯一,无序的对象。

Map接口存储一组键值对象,提供key到value的映射。

ArrayList基本使用

//1.创建ArrayList集合对象
List list=new ArrayList();
//2.添加信息
list.add("aaa");
list.add("bbb");
list.add("ccc");
//3.查询集合中有多少条数据
list.size();
//4.删除数据
list.remove(1);//删除下标为1的值
//5.查找数据
list.get(i);//根据下标进行查找
//6.遍历输出所有元素
for(int i=0;i<list.size();i++){
	String str=list.get(i);
	System.out.println(str);
}
//7.判断元素是否在集合中 list.contains(Object型);
list.contains("aaa");
//判断对象p1是否在集合中 返回值为boolean

示例(看list.add(“aaa”)源码)

1.进入ArrayList类
具体做法:把鼠标放在ArrayList上面,按住ctrl键不放,点击ArrayList
2.通过"alt+7" 找到add方法
查看最里面的方法

private void grow(int minCapacity){
	int newCapacity=oldCapacity+(oldCapacity>>1);
	//右移一位 >>1 相当于除2  解释:二进制 把最后的数字去掉
	//左移一位 <<1 相当于乘2  解释:二进制 在最后一位加0
}

LinkedList的特殊方法

ArrayList能用的方法LinkedList都能用
LinkedList比ArrayList多了6个方法
如果要使用LinkedList比ArrayList多的方法,最左边要写成LinkedList

LinkedList list=new LinkedList();

LinkedList特有方法(6个)
在这里插入图片描述

HashMap(Map接口的实现类)

Map接口:
通过key去存取value值
基本用法:

//1.创建HashMap集合
Map maps=new HashMap();
//2.存值 存的时候要写key和value
maps.put("CN","中国");
//存值注意点:
1.key值不可重复 若重复 后面的值会覆盖前面的
2.value值可以重复

//3.查询有多少条数据
maps.size()
//4.获取value值(通过key值)
String cn=(String)maps.get("CN");
//涉及强制类型转换 因为map.get("key值")返回值为Object型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值