摘要: 1. 栈的实现 /* *路人假helloworld */ package com.cjj.sort; import java.util.Iterator; public class Stack<T> implements Iterable<T>{ private Node head; private 阅读全文
posted @ 2022-03-19 16:33 路人假helloWorld 阅读(39) 评论(0) 推荐(0)
摘要: 解决链表的四道算法题: 1.链表反转。 2.使用快慢指针获取链表中间值。 3.使用快慢指针判断链表中是否有环。 4.使用快慢指针找出链表中环的入口。 1.链表反转 使用递归解决链表反转 /* *路人假helloWorld *反转链表 */ public void reverse(Node head) 阅读全文
posted @ 2022-03-19 16:26 路人假helloWorld 阅读(53) 评论(0) 推荐(0)
摘要: 1.链表 1.1 单向链表的实现 代码: /* * 路人假helloWorld */ package com.cjj.sort; import java.util.Iterator; public class LinkList<T> implements Iterable<T>{ //头结点 pri 阅读全文
posted @ 2022-03-19 15:51 路人假helloWorld 阅读(36) 评论(0) 推荐(0)
摘要: 1.String 1.String声明为finaL的,不可破继承 2.String实现了Serializable接口:表示字符串是支持序列化的。实现了Comparable接口:表示String 可以比较大小. 3.String内部定义了final char[] value用于存储字符串数据 4.St 阅读全文
posted @ 2022-03-15 22:23 路人假helloWorld 阅读(163) 评论(0) 推荐(0)
摘要: 1、HashMap是通过hash值进行快速查找的;HashMap中的元素是没有顺序的;TreeMap中所有的元素都是有某一固定顺序的,如果需要得到一个有序的结果,就应该使用TreeMap。 2、HashMap和TreeMap都是线程不安全的; 3、HashMap继承AbstractMap类;覆盖了h 阅读全文
posted @ 2022-02-28 19:19 路人假helloWorld 阅读(1390) 评论(0) 推荐(0)
摘要: (1)线程是否安全: HashMap 是非线程安全的,HashTable 是线程安全的,因为HashTable 内部的方法基本都经过synchronized修饰。(如果你要保证线程安全的话使用ConcurrentHashMap比较好)。 2)对 Null key 和 Null value 的支持: 阅读全文
posted @ 2022-02-28 19:17 路人假helloWorld 阅读(54) 评论(0) 推荐(0)
摘要: 在jdk1.7是分段的数组+链表 ,jdk1.8的时候跟HashMap1.8的时候一样都是基于数组+链表/红黑树。 (1)在jdk1.7的时候是使用分段所segment,每一把锁只锁容器其中一部分数据,多线程访问容器里不同数据段的数据,就不会存在锁竞争,提高并发访问率。 (2)在jdk1.8的时候摒 阅读全文
posted @ 2022-02-28 19:12 路人假helloWorld 阅读(206) 评论(0) 推荐(0)
摘要: 1.Vector:就比Arraylist多了个同步化机制(线程安全)。 2.Hashtable:就比Hashmap多了个线程安全。 3.ConcurrentHashMap:是一种高效但是线程安全的集合。 4.Stack:栈,也是线程安全的,继承于Vector。 阅读全文
posted @ 2022-02-28 19:09 路人假helloWorld 阅读(5528) 评论(0) 推荐(1)
摘要: ### 1.HashMap的底层原理。 在jdk1.7之前HashMap是基于数组和链表实现的,而且采用头插法。 而jdk1.8 之后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为 8)(将链表转换成红黑树前会判断,如果当前数组的长度小于 64,那么会选择先进行数组扩容,而不是转换为红黑 阅读全文
posted @ 2022-02-28 19:05 路人假helloWorld 阅读(419) 评论(0) 推荐(0)
摘要: 当以无参数构造方法创建 ArrayList 时,实际上初始化赋值的是一个空数组。当真正对数组进行添加元素操作时,才真正分配容量。即向数组中添加第一个元素时,数组容量扩为 10。当插入的元素个数大于当前容量时,就需要进行扩容了, ArrayList 每次扩容之后容量都会变为原来的 1.5 倍左右。 阅读全文
posted @ 2022-02-28 18:54 路人假helloWorld 阅读(57) 评论(0) 推荐(0)