【JAVA】java常用类库和数据结构

2 篇文章 0 订阅

1.常用类库

1.1.时间

在这里插入图片描述

1.1.1.Date类

在这里插入图片描述

在这里插入图片描述

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

可以看到date2的日期和星期都比date1减一天(往前算一天)

比较两个日期的先后:
可以用getTime()获取两个日期的毫秒数,将问题转换为比较两个毫秒数的大小

1.1.2.DateFormat类

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

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

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

1.2.字符串

1.2.1.概述——CharSequence接口

在这里插入图片描述

1.2.2.String类

在这里插入图片描述

1.2.3.StringBuffer/StringBuilder类

在这里插入图片描述

2.数据结构

2.1.集合概览

在这里插入图片描述

2.2.Collection接口

在这里插入图片描述

2.2.1.List接口

在这里插入图片描述

2.2.1.1.ArrayList类(线程不安全)

在这里插入图片描述

2.2.1.2.Vector类(线程安全)

在这里插入图片描述

2.2.1.3.LinkedList类(双向链表)

在这里插入图片描述

2.2.1.4.Iterator/ListInterator(迭代器)

Iterator可用于List和Set
ListInterator只能用于List

迭代器的快速失败和安全失败:
对集合遍历的时候,如果集合发生了修改,遍历结果一定是不对的,这就称为失败。
快速失败:如果在迭代器创建之后的任意时间修改集合,除了迭代器自身的remove方法之外,迭代器将抛出ConcurrentModificationException,会报错。
安全失败:集合在遍历的时候,把集合复制一份,对备份进行迭代,这时候对原集合进行修改不会报出错误。但遍历结果仍然不能真实反映修改后的结果,所以也是失败。

创建集合
在这里插入图片描述

创建迭代器
在这里插入图片描述

创建时指针指向0下标之前的位置
在这里插入图片描述

这是常见的遍历操作方法
hasNext表示如果下一位有数据则返回true,如果下一位没有数据返回false
next表示把指针下移一位并返回指向的元素
在这里插入图片描述
在这里插入图片描述

remove删除当前指针所指的元素

创建ListIterator
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Privious()是指针向上走,next()是指针向下走
初始指针指向0下标之前的位置,此时不能再向上走
add()是在当前指针位置添加一个元素
set()是修改当前指针位置的元素

2.2.1.5.forEach循环

forEach用来迭代数组 或 集合(Collection下的集合)
在这里插入图片描述
在这里插入图片描述

2.2.2.Set接口

在这里插入图片描述

2.2.2.1.HashSet类

创建HashSet
在这里插入图片描述

取出数据:没有get方法
方法1:
可以创建iterator迭代器来取出数据
在这里插入图片描述

方法2:forEach
在这里插入图片描述

方法3:toArray转换成数组

存入重复元素时不会新增元素,并且返回false
在这里插入图片描述
在这里插入图片描述

2.2.2.2.TreeSet

创建集合并存取数据
在这里插入图片描述
在这里插入图片描述

可以用这种方法来看不同数字顺序对应的字符串(ASCII码表)

在这里插入图片描述

在这里插入图片描述

自定义的类如果不指定排序规则会报错
在这里插入图片描述

在这里插入图片描述

报错:类型转换异常:Person类不能转换为Comparable类
原因:Comparable是一个接口,要想比较自定义类的大小(顺序),就必须实现这个接口的比较方法。
解决方法:
(1)自定义类要实现Comparable<泛型指的是你要进行比较的类>接口
在这里插入图片描述

(2)实现comparableTo(你要进行比较的类,也就是上面的泛型)抽象方法
在这里插入图片描述

(3)重写comparaTo()方法,自定义比较规则(this和传入的o两个对象进行比较)
返回值:负数 = this小;零 = 相等;正数 = this大
在这里插入图片描述

(4)验证结果
在这里插入图片描述
在这里插入图片描述

(5)还需注意一点:实现这个方法不仅会影响比较顺序,也会影响能否重复存储
TreeSet不能存储“相同”元素,这个“相同”也是通过这个方法定义的
在这里插入图片描述
在这里插入图片描述

age出现两个19,被认为是相同元素,不会重复存储,但我们认为这是两个不同元素,所以设定规则的时候要注意,尽量设定不易冲突、唯一性强的比较规则,防止丢失数据

2.3.Map类

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值