2020年12月17日
摘要: 首先HashSet是不保证有序,而不是保证无序,因为在HashSet中,元素是按照他们的hashCode值排序存储的。对于单个字符而言,这些hashCode就是ASCII码,因此,当按顺序添加自然数或者26个英文字符时,会产生一种HashSet也可以有序输出的“错觉”。 阅读全文
posted @ 2020-12-17 09:52 含光Aries 阅读(835) 评论(0) 推荐(0) 编辑
  2020年11月8日
摘要: 总的来说,java中Arrays.sort使用了两种排序方法,快速排序和优化的合并排序。Collections.sort方法底层就是调用的Arrays.sort方法。 快速排序主要是对那些基本类型数据(int,short,long等)排序,而归并排序用于对Object类型进行排序。 使用不同类型的排 阅读全文
posted @ 2020-11-08 17:50 含光Aries 阅读(954) 评论(1) 推荐(0) 编辑
  2020年11月7日
摘要: 缓存穿透:是指查询一个Redis和数据库中都不存在的数据。 问题:查询一个Redis和数据库中都不存在的数据,大量请求去访问数据库,导致数据库宕机。 解决办法: 1、根据id查询,如果id是自增的,将id的最大值放到Redis中,在查询数据库之前,直接比较一下id。 2、如果id不是整型,可以将全部 阅读全文
posted @ 2020-11-07 09:56 含光Aries 阅读(196) 评论(0) 推荐(0) 编辑
  2020年9月14日
摘要: 普通求解幂的方法: 1 public int power(int a,int b){ 2 int res = 1; 3 for (int i = 1; i <= b ; i++) { 4 res *= a; 5 } 6 return res; 7 } 是b个a累乘的结果,时间复杂度为O(n)。 而快 阅读全文
posted @ 2020-09-14 20:08 含光Aries 阅读(237) 评论(0) 推荐(0) 编辑
  2020年7月25日
摘要: 基数排序是一种使用关键字的排序算法,是一种不需要比较的排序算法。 1 import java.util.Arrays; 2 import java.util.LinkedList; 3 import java.util.Queue; 4 5 public class MyRadixSort { 6 阅读全文
posted @ 2020-07-25 15:17 含光Aries 阅读(246) 评论(0) 推荐(0) 编辑
  2020年7月24日
摘要: 堆排序总的流程为:构建堆—>拿出堆顶元素—>调整剩余堆;重复第2、3步直至堆为空。 1 import java.util.Arrays; 2 3 public class MyHeapSort { 4 /* 5 此处为大顶堆 6 */ 7 public static void main(String 阅读全文
posted @ 2020-07-24 15:58 含光Aries 阅读(185) 评论(0) 推荐(0) 编辑
  2020年7月23日
摘要: 十大常用的排序算法中,这三种算法都用到了桶的概念 基数排序:根据键值的每位数字来分配桶; 计数排序:每个桶只存储单一键值; 桶排序:每个桶存储一定范围的数值; 1 public class MyCountSort { 2 public static void main(String[] args) 阅读全文
posted @ 2020-07-23 09:44 含光Aries 阅读(143) 评论(0) 推荐(0) 编辑
  2020年7月22日
摘要: 1 2 3 public class MyInsertSort { 4 public static void main(String[] args) { 5 int num[] = {10, 8, 33, 54, 1, 6, 12, 43, 32, 27}; 6 insertSort(num); 7 阅读全文
posted @ 2020-07-22 20:47 含光Aries 阅读(143) 评论(0) 推荐(0) 编辑
摘要: public class MyBubbleSort { public static void main(String[] args) { int num[] = {10,8,33,54,1,6,12,43,32,27}; bubbleSort(num); for (int i = 0; i < nu 阅读全文
posted @ 2020-07-22 09:55 含光Aries 阅读(127) 评论(0) 推荐(0) 编辑
摘要: public class MySelectSort { /* 选择排序 */ public static void main(String[] args) { int num[] = {10,8,33,54,1,6,12,43,32,27}; selectSort(num); for (int i 阅读全文
posted @ 2020-07-22 09:22 含光Aries 阅读(154) 评论(0) 推荐(0) 编辑