java面向对象核心编程
文章平均质量分 53
想想卡宝会怎么做
这个作者很懒,什么都没留下…
展开
-
8.Map
1.put方法存值时,会先计算key的hashCode方法返回的int值,根据hash算法确定当前元素key在位桶中的位置。4.产生hash冲突后,根据key的equals方法判断key是否相等,如果相等,则将key所对应的value覆盖。- key唯一 key不能重复,但值可以重复 ,key可以看为Value的索引。(红黑树的加入是jdk1.8后,当链表长度超过 阈值(8)时,使用红黑树),大大减少了查找时间。5.如果key的equals方法不相等,则采用尾插法将元素插入链表的尾部。...原创 2022-08-16 19:31:21 · 144 阅读 · 0 评论 -
7.Iterator
经过反编译(通过观察.class文件)得出结果:使用增强for循环遍历数组,会解析成一般for循环,但遍历集合时,会解析为迭代器。增强for循环原理是迭代器,而迭代器是专门用来遍历集合的,但数组不是集合,为什么增强for循环可以遍历数组?判断集合是否还有其他元素可以遍历。remove:删除由next()迭代过的元素。迭代器Iterator,用于遍历集合元素。E next:返回迭代的下一个元素。...原创 2022-08-16 18:59:06 · 60 阅读 · 0 评论 -
6.Queue
底层是链表(linked)实现。内部封装一个静态内部类Node。- 创建队列对象的时候右边是LinkedList 也算是向上整型。如果将双端队列限制为一端存取,则可以实现栈的数据结构。栈遵循先进后出的原则。的原则,只能从一端添加(offer)元素,从另一端取出(poll)元素。队列 Queue和Deque :实现类常用LinkedList。- 双向链表 不存在扩容问题。Queue的子接口,定义了双端队列,可以从两端入队和出队。2.双向队列Deque。...原创 2022-08-16 18:35:03 · 93 阅读 · 0 评论 -
5.集合排序问题
以上的方法是会永久改变我的Collections中的sort方法,如果我只想临时修改一次排序方法,则采用以下方法。如果元素为对象,那么可以通过实现Comparable的compareTo方法为对象添加比较逻辑。1.Collections(集合中对象为Integer可直接使用此方法不用重写)使用Collections方法排序的集合元素必须实现Comparable接口。集合排序的方法为sort(List list),作用是对集合中的元素排序。Collections是为集合提供的工具类。......原创 2022-08-16 18:20:02 · 66 阅读 · 0 评论 -
4.集合-Collection -List -Set
remove操作)时,LinkedList比ArrayList的效率更高,因为 ArrayList是数组,所以在其中进行增删。ArrayList自由性较低,因为它需要手动的设置固定大小的容量,但是它的使用比较方便,只需要创。结果为[-1, 1, 2, 3, 24, 13],去除重复元素,且不是按照添加元素顺序输出。操作时,会对操作点之后所有数据的下标索引造成影响,需要进行数据的移动。结果为[1, -1, 24, 13, 2, 3],按照插入顺序打印。ArrayList底层是数组实现,线性结构,更适合查询。.原创 2022-08-15 23:54:50 · 126 阅读 · 0 评论 -
3.时间日期类
/打印当前时间 //Sat Dec 25 19:18:01 CST 2021。add(int fields,int amount):为指定时间分量加上指定的值。set(int fields,int amount):设置时间分量。get(int fields,int amount):获取时间分量。纪元(epoch):1970年1月1日 00:00:00。Java中的时间是用一个固定时间点的毫秒数表示。格式化和解析日期的类,可以对时间格式化或规范化。Calender:抽象类,用于时间分量的计算。...原创 2022-08-15 23:11:24 · 75 阅读 · 0 评论 -
2.包装类
包装类就是基本类型转化成为对象的类(Java.lang.Number类下的子类提供了6种基本类型的包装 类)。自动装箱拆箱就是编译器在生成字节码时自动完成了包装类和基本类型间的相互转换的方法调用。jdk5.0后加入了autoboxing(自动装箱和拆箱)功能。装箱: 基本类型--->包装类 拆箱: 包装类--->基本类型。每一个基本类型都有一个与之对应的包装类(wrapper)。...原创 2022-08-15 23:18:11 · 60 阅读 · 0 评论 -
1.API 常用类
原理:字符串一旦初始化不可更改,但是可以通过在字符串常量池中重写创建一个字符串, 改变引用的指向,进而改变字符串的值。StringBuilder(String str) 构造一个字符串生成器,并初始化为指定的字符串内容。(1)Java为了提高性能,静态字符串在常量池中创建,并且是同一对象,使用时直接拿取。两个或1个,如果常量池中有a则返回,如果没有则创建一个a,加上new的对象是两 个。都比较的是地址信息。(2)对于重复的字符串直接量,JVM会去常量池查找,如果有则返回,无则创建。..原创 2022-08-15 20:08:37 · 125 阅读 · 0 评论