自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 ElasticSearch(一)

es的简单操作

2023-03-09 22:26:02 74

原创 专业课day0

复习

2022-09-12 16:34:59 136

原创 数据结构-数组

在每一种编程语言中,基本都会有数组这种数据类型。不过它不仅仅是一种编程语言中的数据类型,还是一种最基础的数据结构。尽管它看起来十分简单,但是我们很多人都没有了解它的精髓。首先,我们来想一个问题,为什么很多编程语言数组的下标都是从0开始的?从1开始不是更符合人类的思维模式吗?接下来我们带着这个问题来学习接下来的内容?如何实现随机访问?我们都知道数组是一种线性表的数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。这里有两个重点:连续的内存空间和相同类型的数据。(线性表 线性结构

2022-02-06 20:05:27 434

原创 JUC并发编程

学习狂神说JUC并发编程笔记视频地址:遇见狂神说的个人空间_哔哩哔哩_bilibili1.什么是juc?juc就是java.util.concurrent下的包,专门处理多线程开发。学习该课程需要对java语言和java多线程编程有一定的了解2.进程和线程进程:程序执行的过程。一个程序往往可以包含多个线程(至少包含一个)线程:是进程的一个执行单元,是进程内调度的实体,比进程更小的独立运行的基本单位。比如一个开启了一个网易云音乐,显示歌词,可能就是一个线程处理的。java默认有

2022-01-01 17:20:44 238

原创 ArrayList源码分析

总结:ArrayList,在添加元素时,首先判断是否需要扩容,如果需要扩容,就扩大到当前数组的1.5倍,底层使用的是一个位运算ArrayList 默认有3个构造方法 一个空参 一个传入int型的定义一个int大小的集合 最后一个传递一个Collection接口的构造器,默认将该集合中的数据按照迭代器顺序,存入ArrayList集合中,集合的默认大小为该集合中元素的个数。添加元素时首先进入ensureCapacityInternal public boolean add(E e) {...

2021-12-30 22:14:24 256

原创 JAVA类加载顺序

java类加载顺序

2021-12-30 21:19:31 414

原创 Comparable<T> 和 Comparator<T> 的区别

Comparablepackage java.lang;import java.util.*;public interface Comparable<T> {//函数式接口 public int compareTo(T o);}首先它是在java.lang包下的有一个 返回值为 int型的 抽象方法compareTo(T o)传入参数是一个泛型 在定义这个接口的时候可以传入类型Comparator<T>package java.u

2021-12-29 20:04:17 292

原创 复杂链表的赋值

请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。示例 1:输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]示例 2:输入:head = [[1,1],[2,1]]输出:[[1,1],[2,1]]示例 3:输入:hea

2021-10-28 13:42:56 82

原创 剑指offer 反转链表

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode reverseList(ListNode head) {

2021-10-28 13:40:58 38

原创 从尾到头打印链表

题目描述输入一个链表的头节点,从尾到头打印链表(用数组返回,不能破环,原有链表的结构)。示例输入:head = [1,3,2]输出:[2,3,1]/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution {

2021-10-28 13:39:00 46

原创 包含min函数的栈

题目描述定义栈的数据结构,请在该类中实现一个能够得到栈的最小元素的min函数在该栈中,调用min、push、及pop的时间复杂度都是o(1)class MinStack { //定义两个栈 //用来存储正常的元素顺序 private Stack<Integer> stack1; //用来存储最小元素的顺序 private Stack<Integer> stack2; /** initialize your data struc

2021-10-28 13:36:31 53

原创 用两个栈实现队列

解题思路:栈的特点:先进后出,如下图为栈的示意图: 队列的特点:先进先出,如下图:一个栈是无法实现队列的功能:栈底元素对应的是队列首个元素,无法直接删除,需要将整个栈中的元素依次压入另一个栈中,这样栈底的元素就跑到栈顶了。双栈是可以模拟队列的实现:设含有四个元素的栈A=【3,4,5,6】和空栈B=【】,若循环执行A元素出栈,并将出栈的元素添加到栈B,直到栈A为空。则A=【】,B=【6,5,4,3】,即B中元素是A中元素的倒叙。利用栈B删除队首元素:倒叙后B栈...

2021-10-28 13:34:37 182

原创 ArrayList扩容机制

结论 ArrayList底层是一个可变数组,然后该数组被transient修饰,不能被序列化 使用无参构造器,第一次扩容为10,然后每次扩容集合的1.5倍 使用有参构造器,每次扩容为集合长度的1.5倍 ArrayList的优点:查询快,增删慢,ArrayList集合每次添加元素都要判断是否需要扩容,从而影响了效率。属性 /** * 默认初始容量 */ private static final i...

2021-07-13 20:51:48 97

原创 选择排序算法

选择排序概述选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。 ————来自百度百科 选择排序api设计类名 Insert_Sort 构造方法 public Insert_Sort(){} 成员方法 ...

2021-06-23 19:45:17 55

原创 冒泡排序算法

冒泡排序的api设计类名Bubble构造方法 Bubble对象成员方法 1.public static void sort(Comparable[] a):对数组内的元素进行排序 2.private static boolean greater(Comparable v,Comparable w):判断v是否大于w 3.private static void exch(Comparable[] a, int i,int j):交换a数组中,索引i和j处的值...

2021-06-22 20:34:32 77

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除