- 01.数组相关问题
- 02.链表相关问题
- 03.栈相关问题
- 04.队列相关问题
- 05.树相关问题
- 06.排序相关问题
- 07.查找相关问题
- 09.散列相关问题
- 10.字符串相关问题
- 11.递归相关问题
- 12.哈希算法问题
- 15.常用数据结构
- 数组设计相关问题
- 数组具有什么样的特性?说一下数组初始化操作?如何理解空间连续?数组使用场景有哪些?
- 数组有什么样的缺点?数组创建为何需要注意初始化长度?数组如何根据下标访问数据?下标内存地址值如何计算?
- 数组查找的时间复杂度是多少?为什么说数组插入是低效的?那么如何提高数据的插入效率呢?
- 数组算法相关问题
- 算法1:用类封装数组,要求可以添加数据,在指定索引添加数据,删除数据,查询数据,遍历数据等操作
- 算法2:给定一个排序数组[0,0,1,1,1,2,2,3,3,4],需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
- 算法3:啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。请你计算他买了几罐啤酒。
- 算法4:给定一个非空整数数组[4,1,2,1,2],除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
- 算法5:找出常用数字,给你一个长度为n的数组,其中有一个数字出现的次数至少为n/2,找出这个数字。比如输入: [1,1,1,2,5,7,8,8,8,8,10],输出: 8
- 算法6:调整奇数和偶数顺序,输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位予数组的后半部分。比如[1,3,4,5,6,8,2],输出[1,3,5,4,6,8,2]
- 算法7:最小的第K个数,输入n个整数,找出其中最小的k个数。例如输入4 、5 、1、6、2、7、3 、8 ,这8个数字,则最小的4个数字是1、2、3、4
- 算法8:数组中重复的数字,例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3
- 链表设计相关问题
- 链表应用场景有那些?链表存储数据和数组存储数据有什么区别?存储相同的数据占用空间比较?
- 链表算法相关问题
- 哈希算法介绍
- 什么是哈希算法?常见的有哪些?优秀的哈希算法需要具备那些要求?哈希算法常常用在那些场景?
- 哈希算法场景
- 数据安全加密常用那种哈希算法?加密算法有哪些重要的点?MD5加密是绝对安全的吗?
- 如何从海量图片中搜索一张图?如果要给图片打标示,则如何取它的唯一性?如何保证图片唯一标示和图片对应起来?
- BT下载数据如何校验数据的完整性?哈希算法还用到了那些数据校验的场景?
- 散列函数一般用在那种场景,这种哈希算法对碰撞要求高吗?如何让散列值更加均匀地分布?
- 哈希冲突如何理解?一般是怎么解决哈希冲突的,结合实际案例说一下,怎么降低哈希冲突?
- 哈希算法问题
- MD5加密算法的原理是什么?如何增强MD5的安全性?常见MD5破解如何做的?
- Hash的使用场景有哪些?Hash表是如何提高查找速度的?Hash为何会有冲突?如何解决哈希冲突?
- HashCode作用是什么?可直接用hashcode判断两个对象是否相等?HashMap中是如何使用HashCode提高去重的逻辑?
- 数组
- 数组:在java中,声明一个数组过程中,是如何分配内存的?如何实现数组逆置?如何权衡是使用无序的数组还是有序的数组?怎么判断数组是 null 还是为空?
- List集合
- fail-fast:什么是Java集合的快速失败机制 “fail-fast”?单线程迭代器遍历移除会“fail-fast”吗?多线程如何解决这种异常?
- List集合:ArrayList和LinkedList的区别?为什么说LinkedList 在插入和删除数据时效率更高?有没有在优化的可能?
- Array:Array 和 ArrayList 有什么区别?什么时候该应 Array 而不是 ArrayList 呢?
- LinkedList: 它是单向链表还是双向链表?链表有什么样的特点?插入数据时,ArrayList, LinkedList, Vector谁速度较快?为什么?
- Set集合
- Set集合:HashSet是如何保证数据不可重复的?HashSet和TreeSet有什么区别?TreeMap和TreeSet在排序时如何比较元素?
- Set集合:Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用 == 还是 equals()? 它们有何区别?集合Set实现Hash怎么防止碰撞?
- Map集合
- HashMap:HashMap的实现机制,底层数据结构是什么?如果Hash冲突了怎么解决?HashMap的put方法的具体流程?怎么样HashMap线程安全?
- HashMap:HashMap扩容操作是怎么实现的?是怎么解决哈希冲突的?HashMap为什么不直接使用hashCode()处理后的哈希值直接作为table的下标?
- HashMap:为什么HashMap中String、Integer这样的包装类适合作为K?如果我想要让自己的Object作为K应该怎么办呢?
- ConcurrentHashMap:ConcurrentHashMap的具体实现知道吗?如何实现高效地线程安全?如何实现分段锁?
- TreeMap:TreeMap 是采用什么树实现的?TreeMap、HashMap、LandedHashMap的区别。
- LinkedHashMap:它是如何实现有序?它是如何实现淘汰数据的?put和get分别做了什么操作?