java基础(5)枚举类,注解 ,集合

枚举类使用

在这里插入图片描述

  • 自定义

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
values就是用来遍历对象得
在这里插入图片描述
该方法就是用来找枚举类中得对象,错误就报异常
在这里插入图片描述
可以让每个对象都重写接口方法

注解

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

集合

在这里插入图片描述
list成为动态数组
map:映射
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
比较的是内容而非地址在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

迭代器

在这里插入图片描述
迭代器模式,不爆露内部细节
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

注意再remove之后再迭代需要重置指针,一定要注意
并且也不可以再没有调用next仍然调用remove,这两种方式都会报异常

Foreach循环遍历集合元素

在这里插入图片描述
增强for是重新赋值
在这里插入图片描述
之前arr的值不变

List

在这里插入图片描述
在这里插入图片描述
jdk7中默认构造器容量为10的elementData,add如果超过容量就扩容,右一一位即扩大为原来的两倍,同时会把数组数据复制到新数组中
所以建议直接使用带参构造器可以确定容量
在这里插入图片描述
jdk8中空参构造器不创建长度为10的数组
在第一次add中才会创造10的数组并将数据放入0号位置

总结:7类似与饿汉式,8类似于懒汉
式。节省空间
在这里插入图片描述
linkedlist源码时其中定义一个node,这是一个双向链表,前后指针

  • arrarylist常用方法
    在这里插入图片描述

在这里插入图片描述
aslist添加新数组
add是当作一个元素,addall是分开添加
在这里插入图片描述
indexof返回第一次出现的索引
在这里插入图片描述

Set

在这里插入图片描述
无序性指排序并非按照索引,而是哈希值排序
不可重复性就是指元素按照equals()判断,不能返回true
在这里插入图片描述
不可重复性用哈希值来判断,所用的就是拉链法。七上八下(新元素位置)
在这里插入图片描述

在这里插入图片描述
再未重写hashcode时调用的时object中的,这是一个这个的hash值是一个随机数
在这里插入图片描述
在这里插入图片描述
数大,素数,2的幂次方好移位
在这里插入图片描述
一致性就是相等对象拥有相同散列码

  • linkedhashset

在这里插入图片描述
遍历效率高一些

TreeSet

TreeSet中只能用相同数据类型。自然排序实现comparable接口。
重写compareto方法

在这里插入图片描述
在这里插入图片描述
在对象相同时,方法返回0,而非equals
在这里插入图片描述
定制排序是和comparator相关
在这里插入图片描述
自然与定制的区别:当元素的类型没有实现java.lang.Comparable接口而又不方便修改代码, 或者实现了java.lang.Comparable接口的排序规则不适合当前的操作,那 么可以考虑使用 Comparator 的对象来排序,强行对多个对象进行整体排 序的比较

map

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

key用set存储所在类要重写equals()与hashcode()
vaule用collection存储,value重写equals()
一个键值对构成一个entry对象
map的entry:用set存储所有entry

hashmap

在这里插入图片描述
7会创建entry数组,长度16
这样的如果是hash相同且equals返回true,put实际上还有一个替换功能
在超出临界值(16*0.75=12)扩容

在这里插入图片描述
8的底层数组为node(单向链表),第一次put调用创建16数组,其中未数组+链表+红黑树:这样不用想链表一样一个个比较。二叉排序树节约一半时间
当一个索引位置大于8且数组长度大于64则全部数据改为红黑树存储

LinkedHashMap

类似于linkedlist,重写了父类map中的putval方法中的newNode方法
并且其node继承父类node加上了前驱后继
在这里插入图片描述
在这里插入图片描述
小点:set的add实际上是把元素放入一个map,就是把set的元素放入了key
vaule放入的是object

  • 常用方法:put,putall,remove,clear
    在这里插入图片描述
    在这里插入图片描述
    clear是清楚堆中数组,map指向的table仍然存在

在这里插入图片描述
三种遍历
在这里插入图片描述
当同时需要两种
在这里插入图片描述
在这里插入图片描述

TreeMap

在这里插入图片描述
都是类似Treeset

properties

在这里插入图片描述

Collections工具类

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值