- 博客(7)
- 收藏
- 关注
原创 Java_并发_死锁
死锁的概念“死锁”指的是:多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能进行,而导致两个或者多个死锁产生的4个必要条件?产生死锁的四个必要条件(预防死锁只需要破坏其中一个): 1.互斥条件:当资源被一个线程使用时,别的线程不能使用。 2.请求和保持条件:当进程因请求资源而阻塞时,保持对原有资源的占有,不释放。 3.不剥夺条件:进程已获得的资源在未使用完之前,别的进程不能剥夺,只能在使用完时由自己释放。 4.环路等待条件:线程1等待线程2的资源,线程2等待线程1的..
2022-01-10 17:04:54
78
原创 Java_Set接口
Set容器特点:无序,不可重复。无序指Set中的元素没有索引,只能遍历查找;不可重复指不允许加入重复的元素,甚至,只能放入一个null元素。Set常用实现类有:HashSet,TreeSet等。HashSet底层是HashMap手工实现HashSetpublic class SxtHashSet { HashMap map; private static final Object PRESENT = new Object(); public SxtHashSet(){ .
2021-12-15 17:04:06
619
原创 Java_手工实现HashMap
//自定义一个HashMappublic class SxtHashMap<K,V> { Node2 [] table; //位桶数组。bucket array int size; //存放键值对的个数 public SxtHashMap(){ table = new Node2[16]; //长度一般定义为2的整数次幂 } public void put(K key,V value){ Node2 ne
2021-12-14 20:56:06
283
原创 Java_LinkedList手写部分功能理解LinkedList
LinkedList(链表)底层是用双向链表实现的存储。是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址。public class SxtLinkedList <E>{ private Node first; private Node last; private int size; public void add(E element){ Node node = new Node
2021-12-12 20:59:53
521
原创 Java_手工实现ArrayList
手写ArrayList部份功能//自定义实现ArrayList,体会底层原理import java.util.Arrays;public class SxtArrayList <E>{ private Object[] elementData; private int size; private static final int DEFAULT_CAPACITY = 10; public SxtArrayList(){ elemen
2021-12-10 19:31:46
450
原创 LeetCode242思路
题目:[LeetCode242](https://leetcode-cn.com/problems/valid-anagram/submissions/)给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1: 输入: s = "anagram", t = "nagaram" 输出: true示例 2: 输入: s = "rat", t = "car" 输出: false说明: 你可以假设字符串只包含小写字母。思路:1.暴力解法:2层for循环,同时记
2021-11-18 18:07:48
95
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人