Java刷题常见的集合类,各种函数的使用以及常见的类型转化等等

目录

前言

集合类

ArrayList

1. 创建和初始化 ArrayList

2.添加元素 add

3.获取元素 get

4.删除元素 remove

5.检查元素

6.遍历 ArrayList

LinkedList

Stack

1. 创建Stack对象

2. 压入元素 (push)

3. 弹出元素 (pop)

4. 查看栈顶元素 (peek)

5. 检查栈是否为空 (empty)

Queue

1. 创建队列对象

2. 添加元素 (add 和 offer)

3. 移除元素 (poll 和 remove)

4. 查看队列头部元素 (peek 和 element)

5. 队列大小 (size)

6. 检查队列是否为空 (isEmpty)

PriorityQueue

小根堆:

大根堆

Set

1.创建 Set 实例

2. 添加元素

3. 删除元素

4. 检查是否包含某个元素

5. 获取集合的大小

6. 判断集合是否为空

Map

1. 基本创建 Map

2. 插入/更新元素

3. 获取元素

4. 检查键或值是否存在

5. 删除元素

6. 获取键集合、值集合和键值对集合(重)

7. 遍历 Map

8. 默认值处理

String类

1.字符串连接

2.字符串比较

3.字符串查找

4.字符串替换和修改

5.字符串转换

6.其他常用方法

StringBuffer(重)

1.追加字符串:append

2.插入字符串:insert

3.删除字符串:delete 和 deleteCharAt

4.反转字符串:reverse

5.转换为 String:toString

Math类

数组(Arrays)类

1.数组的排序

2.数组转化字符串

3.数组复制

4.数组填充

5.数组比较

其他操作 :

常见数据类型的最大值和最小值

集合转化成数组

字符与字符串的转换

字符串和整型之间的转化


前言

相信大家在刷算法题的过程中,好不容易想出来大概的思路,也知道去用哪个集合类,但各个集合类的一些命令都长得太像,很容易将他们弄错,并且在各集合之间的转化也是特别烦人,还有很多实用的函数都知道可以去用,但总是会忘记。

本篇将会把刷题中常见的,实用的集合类的功能和各类函数都将详细说明(后续遇到慢慢补充)


集合类

ArrayList

1. 创建和初始化 ArrayList

```java
ArrayList list = new ArrayList<>();

```

Java刷题常见的集合类,各种函数的使用以及常见的类型转化等等

默认容量为10

2.添加元素 add

添加单个元素(常用)

```java
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        //list{1 2 3 4 5}
```

在指定位置添加元素

```java
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        list.add(0,10);  // [10, 1, 2, 3, 4, 5]
```

3.获取元素 get

获取指定索引位置的元素

```java
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        int element = list.get(1);  // 获取索引为 1 的元素  2
```

4.删除元素 remove

```java
boolean contains = list.contains(10);  // 检查是否包含值为 10 的元素 false

```


```java
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        list.remove(0); // 2 3 4 5
        list.remove(list.size()-1); // 2 3 4

```

5.检查元素

1)检查集合是否包含某个元素

```java
boolean contains = list.contains(10);  // 检查是否包含值为 10 的元素 false

```

2)检查集合是否为空

```java
boolean isEmpty = list.isEmpty();  // 检查 ArrayList 是否为空

```

6.遍历 ArrayList

1)使用普通 for 循环遍历

```java
for (int i = 0; i < list.size(); i++) {
    System.out.println(list.get(i));  // 访问每一个元素
}

```

2)使用增强 for 循环遍历

```java
for (Integer num : list) {
    System.out.println(num);
}

```

3)使用迭代器遍历

```java
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}

```

LinkedList

LinkedList和ArrayList命令上大体相同,他们都实现了List 接口

LinkedList 实现了 QueueDeque 接口,可以用作队列(FIFO)和栈(LIFO):


Stack

1. 创建Stack对象

用于创建一个新的栈,常用于存储数字、字符或其他对象。

```bash
Stack stack = new Stack<>();

```

**2. 压入元素 (push) **

push(E item)方法用于将元素推入栈顶。

```java
stack.push(10);
stack.push(20);
stack.push(30);
// 10 20 30
```

3. 弹出元素 (pop)

pop()方法用于移除并返回栈顶元素。如果栈为空,调用该方法会抛出EmptyStackException异常。需要注意栈为空时使用时需检查栈是否为空,避免异常。

```java
int topElement = stack.pop(); // 30
```

4. 查看栈顶元素 (peek)

peek()方法用于查看栈顶元素,但不会移除它。如果栈为空,同样会抛出EmptyStackException异常。

```java
int topElement = stack.peek(); // stack{10,20} 20

```

5. 检查栈是否为空 (empty)

empty()方法返回true如果栈为空,false如果栈不为空。这个方法在判断栈是否可以继续操作时非常有用。

```java
boolean isEmpty = stack.empty(); // false

```

Queue

1. 创建队列对象

```java
Queue queue = new LinkedList<>();
// 或使用 ArrayDeque,性能更好
Queue queue = new ArrayDeque<>();

```

**2. 添加元素 (addoffer) **

**在刷题中,offer 比较常用 **

```java
queue.add(10);  // 抛出异常:如果队列已满,则抛出 IllegalStateException
queue.offer(20); // 返回 true/false:如果队列已满,返回 false

```

3. 移除元素 (pollremove)

poll() 更常用

```java
int element = queue.poll();  // 移除并返回队列头部的元素,队列为空时返回 null
int element = queue.remove();  // 移除并返回队列头部的元素,队列为空时抛出 NoSuchElementException

```

**4. 查看队列头部元素 (peekelement) **

peek() 方法更常用,因为它更安全,不会抛出异常。

```java
int element = queue.peek();  // 返回队列头部的元素,队列为空时返回 null
int element = queue.element();  // 返回队列头部的元素,队列为空时抛出 NoSuchElementException

```

**5. 队列大小 (size) **

返回队列中元素的数量,通常用于判断队列是否为空。

```java
int size = queue.size();  // 获取队列中元素的数量

```

**6. 检查队列是否为空 (isEmpty) **

返回true 如果队列为空,false 如果队列不为空。常用于循环前检查队列是否有元素。

```java
boolean isEmpty = queue.isEmpty();  // 判断队列是否为空

```

PriorityQueue

PriotyQueue跟Queue命令大体相似,但它也是刷题中经常遇到的,因为它可以创建大小根堆

  • 大根堆(Max-Heap) :每个父节点的值大于或等于其子节点的值,根节点为最大元素。
  • 小根堆(Min-Heap) :每个父节点的值小于或等于其子节点的值,根节点为最小元素。

小根堆:

```java
 // 创建小根堆
        //默认就是小根堆
        PriorityQueue minHeap = new PriorityQueue<>();

        // 向小根堆插入元素
        minHeap.offer(10);
        minHeap.offer(20);
        minHeap.offer(5);
        minHeap.offer(30);

        // 输出堆顶元素(最小元素)
        System.out.println("小根堆堆顶元素:" + minHeap.peek()); // 输出 5

        // 删除堆顶元素(最小元素)
        System.out.println("删除堆顶元素:" + minHeap.poll()); // 输出 5

        // 输出删除堆顶后的堆顶元素
        System.out.println("删除后堆顶元素:" + minHeap.peek()); // 输出 10
```

大根堆

```java
 // 创建大根堆(使用自定义的比较器实现降序排列)
        PriorityQueue maxHeap = new PriorityQueue<>((a,b)-> b - a);

        //        PriorityQueue max = new PriorityQueue<>(Comparator.reverseOrder());
        // 向大根堆插入元素
        maxHeap.offer(10);
        maxHeap.offer(20);
        maxHeap.offer(5);
        maxHeap.offer(30);

        // 输出堆顶元素(最大元素)
        System.out.println("大根堆堆顶元素:" + maxHeap.peek()); // 输出 30

        // 删除堆顶元素(最大元素)
        System.out.println("删除堆顶元素:" + maxHeap.poll()); // 输出 30

        // 输出删除堆顶后的堆顶元素
        System.out.println("删除后堆顶元素:" + maxHeap.peek()); // 输出 20
```

Set

1.创建 Set 实例

3种方法任选一种

```java
Set set = new HashSet<>();
Set linkedSet = new LinkedHashSet<>();
Set treeSet = new TreeSet<>();

```

2. 添加元素

```java
set.add(1);  // 添加元素,如果元素已存在,返回 false
set.add(2);
set.add(3);

```

3. 删除元素

```java
set.remove(2);  // 删除元素2

```

4. 检查是否包含某个元素

```java
boolean contains = set.contains(3);  // 返回 true 如果包含元素3

```

5. 获取集合的大小

```java
int size = set.size();  // 返回集合的元素个数

```

6. 判断集合是否为空

```java
boolean isEmpty = set.isEmpty();  // 如果集合为空,返回 true

```

7.遍历

1)使用迭代器遍历

```java
Iterator iterator = set.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}

```

2)使用增强型 for 循环遍历

```java
for (Integer num : set) {
    System.out.println(num);
}

```

**7.Set 转换为 List **

```java
List list = new ArrayList<>(set);  // 转换为 List

```

Map

1. 基本创建Map

```java
Map map = new HashMap<>();

```
  • K 是键的类型,V 是值的类型。
  • 可以使用 HashMapTreeMapLinkedHashMap 等不同实现类。
  • 经常使用HashMap类,O(1)
```java
        Map map = new HashMap<>();
        Map map1 = new TreeMap<>();
        Map map2= new LinkedHashMap<>();
```

2. 插入/更新元素

```java
map.put(K key, V value);  // 插入或更新元素,如果key已经存在,值会被更新

```

3. 获取元素

```java
V value = map.get(K key);  // 根据键获取对应的值,若键不存在返回 null

```

4. 检查键或值是否存在

```java
boolean containsKey(Object key);  // 判断map中是否存在指定的key
boolean containsValue(Object value);  // 判断map中是否存在指定的value

```

5. 删除元素

```java
map.remove(K key);  // 根据key删除键值对

```

6. 获取键集合、值集合和键值对集合(重)

```cpp
Set keySet = map.keySet();  // 获取所有键
Collection values = map.values();  // 获取所有值
Set> entrySet = map.entrySet();  // 获取所有的键值对

```


```cpp
        Map hash = new HashMap<>();
        hash.put("hhh",1);
        hash.put("ggg",2);
        hash.put("www",3);
        Set keySet = hash.keySet();
        System.out.println(keySet);
        Collection values = hash.values();
        System.out.println(values);
        Set> entrySet = hash.entrySet();
        System.out.println(entrySet);

```

Java刷题常见的集合类,各种函数的使用以及常见的类型转化等等

7. 遍历 Map

```cpp
// 使用增强for循环遍历entrySet
for (Map.Entry entry : map.entrySet()) {
    K key = entry.getKey();
    V value = entry.getValue();
}

// 使用lambda表达式遍历
map.forEach((key, value) -> {
    System.out.println(key + ": " + value);
});

```


```cpp
        Map hash = new HashMap<>();
        hash.put("hhh",1);
        hash.put("ggg",2);
        hash.put("www",3);
        //遍历key
        for(String key :hash.keySet()) {
            System.out.print(key+" ");
        }
        System.out.println();
        //遍历values
        for(Integer value :hash.values()) {
            System.out.print(value+" ");
        }
        System.out.println();
        //遍历整个map
        for (Map.Entry entry :hash.entrySet()) {
            System.out.println(entry.getKey() + ":" + entry.getValue());
        }
        //lambda 遍历map
        System.out.println();
        hash.forEach((key,value)->{
            System.out.println(key + ":" + value);
        });
```

Java刷题常见的集合类,各种函数的使用以及常见的类型转化等等

8. 默认值处理

```java
V value = map.getOrDefault(K key, V defaultValue);  // 如果key存在,返回对应的值,否则返回默认值

```

String类

1.字符串连接

```java
String.concat(String str)
```

**将给定的字符串拼接到当前字符串的末尾。相当于+ 操作符,但效率较高。 **

```java
String str = "Hello";
str = str.concat(" World");  // str = "Hello World"

```

2.字符串比较

1) 判断当前字符串和指定字符串是否相等。比较的是字符序列是否相同。

```java
String.equals(Object obj)
```


```java
String str1 = "Hello";
String str2 = "hello";
boolean isEqual = str1.equals(str2);  // false

```

2) 忽略大小写比较两个字符串是否相等。

```java
String.equalsIgnoreCase(String anotherString)
```


```java
String str1 = "Hello";
String str2 = "hello";
boolean isEqual = str1.equalsIgnoreCase(str2);  // true

```

3)字符串按字典顺序比较,返回一个整数:

  • 0 表示两个字符串相等;
  • < 0 表示当前字符串在字典序中小于给定字符串;
  • > 0 表示当前字符串在字典序中大于给定字符串。

    java
    String.compareTo(String anotherString)

    ```java
    String str1 = "apple";
    String str2 = "banana";
    int result = str1.compareTo(str2); // result < 0

    ```

4)忽略大小写进行字典序比较。

```java
String str1 = "apple";
String str2 = "APPLE";
int result = str1.compareToIgnoreCase(str2);  // result == 0

```

3.字符串查找

1)返回指定子字符串首次出现的索引位置。如果没有找到,返回-1

```java
String.indexOf(String str)
```


```java
String str = "Hello, World!";
int index = str.indexOf("W");  // index = 7
int index = str.indexOf("M");  // index = -1
```

2)返回指定子字符串最后一次出现的索引位置。

```java
String.lastIndexOf(String str)
```


```java
        String str = "aaaaabbbbba";
        int index = str.lastIndexOf("a"); //index=10
```

3)判断当前字符串是否包含指定的子字符串,返回布尔值。

```java
String.contains(CharSequence sequence)
```


```java
String str = "Hello, World!";
boolean contains = str.contains("World");  // true

```

4)判断当前字符串是否以指定的前缀开头。

```java
String.startsWith(String prefix)
```


```java
String str = "Hello";
boolean startsWith = str.startsWith("He");  // true

```

5)判断当前字符串是否以指定的后缀结尾。

```java
String.endsWith(String suffix)
```


```java
String str = "Hello";
boolean endsWith = str.endsWith("lo");  // true

```

4.字符串替换和修改

1)替换字符串中的字符。返回一个新的字符串,原字符串不变。

```java
String.replace(char oldChar, char newChar)
```


```java
String str = "hello";
String newStr = str.replace('l', 'p');  // newStr = "heppo"

```

2)字符串截取

1)返回从指定索引开始到字符串末尾的子字符串

```java
String.substring(int beginIndex)
```


```java
String str = "Hello World!";
String subStr = str.substring(6);  // subStr = "World!"

```

2) 返回从beginIndexendIndex 之间的子字符串。

```java
String.substring(int beginIndex, int endIndex)
```


```java
String str = "Hello World!";
String subStr = str.substring(0, 5);  // subStr = "Hello"

```

5.字符串转换

1)将字符串转换为小写字母。

```java
String.toLowerCase()
```


```java
String str = "HELLO";
String lowerStr = str.toLowerCase();  // lowerStr = "hello"

```

2)将字符串转换为大写字母。

```java
String.toUpperCase()
```


```java
String str = "hello";
String upperStr = str.toUpperCase();  // upperStr = "HELLO"

```

3)去掉字符串前后的空白字符。

```java
String.trim()
```


```java
String str = "   Hello World!   ";
String trimmedStr = str.trim();  // trimmedStr = "Hello World!"

```

4)将其他类型的数据(如intbooleanchar 等)转换为字符串。

```java
String.valueOf()
```


```java
int num = 100;
String str = String.valueOf(num);  // str = "100"

```

6.其他常用方法

1)根据正则表达式将字符串拆分成数组。

```java
String.split(String regex)
```


```java
String str = "apple,banana,orange";
String[] arr = str.split(",");  // arr = ["apple", "banana", "orange"]

```

2) 将多个字符串连接成一个字符串,中间用指定的分隔符。

```java
String.join(CharSequence delimiter, CharSequence... elements)
```


```java
String result = String.join(",", "apple", "banana", "orange");  // "apple,banana,orange"

```

StringBuffer(重)

1.追加字符串:append

将指定的内容追加到StringBuffer 末尾。

```java
        StringBuffer stringBuffer = new StringBuffer(); // 默认容量为16
        stringBuffer.append("hello");
        stringBuffer.append(" ");
        stringBuffer.append("world!"); // hello world!
```

**2.插入字符串:insert **

将指定的内容插入到指定位置。

```java
        StringBuffer stringBuffer = new StringBuffer(); // 默认容量为16
        stringBuffer.append("hello");
        stringBuffer.append(" ");
        stringBuffer.append("world!");
        stringBuffer.insert(6,"hi ");  // hello hi world!
```

3.删除字符串:deletedeleteCharAt

  • delete(start, end):删除从 startend(不包括 end)的字符。
  • deleteCharAt(index):删除指定索引处的字符。

    java
    StringBuffer stringBuffer = new StringBuffer(); // 默认容量为16
    stringBuffer.append("hello");
    stringBuffer.append(" ");
    stringBuffer.append("world!");
    stringBuffer.delete(0,5); // world!

    java
    stringBuffer.append("hello");
    stringBuffer.deleteCharAt(stringBuffer.length()-1); // hell

4.反转字符串:reverse

StringBuffer 中的字符序列反转。

```java
        stringBuffer.append("hello");
        stringBuffer.reverse(); // olleh
```

**5.转换为StringtoString **

```java
        stringBuffer.append("hello");
        String str = stringBuffer.toString(); //hello
```

..................

StringBuilder(线程不安全) 跟StringBuffer(线程安全)类似 功能基本一致

String - > integer -> char数组


Math类

列举一些主要的数学函数

1.绝对值:abs

返回参数的绝对值。

```java
Math.abs(-5);  // 5
Math.abs(3.14);  // 3.14

```

平方根:sqrt

返回参数的平方根。如果参数为负数,则返回 NaN

```java
Math.sqrt(16);  // 4.0
Math.sqrt(2);   // 1.4142135623730951

```

幂运算:pow

返回第一个参数的第二个参数次方。

```java
Math.pow(2, 3);  // 8.0
Math.pow(3, 0);  // 1.0

```

最大值和最小值:maxmin

返回两个数中的最大值或最小值。

```java
Math.max(5, 10);  // 10
Math.min(5, 10);  // 5

```

四舍五入:round

返回最接近的整数(四舍五入),并将结果作为 long 类型返回。

```java
Math.round(3.6);  // 4
Math.round(3.4);  // 3

```

向上取整:ceil

返回大于或等于参数的最小整数值,结果是 double 类型。

```java
Math.ceil(3.1);  // 4.0
Math.ceil(3.9);  // 4.0

```

指数运算:exp

计算 e 的 x 次方,等效于 Math.pow(Math.E, x)

```java
Math.exp(1);  // 2.718281828459045

```

数组(Arrays)类

1.数组的排序

1)默认是以升序状态

```
Arrays.sort(array)
```


```java
        int[] arr = {10,5,12,45,32,20,18};
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
```

Java刷题常见的集合类,各种函数的使用以及常见的类型转化等等

2)用于自定义排序规则。适用于对象类型的数组 降序排序

```java
        Integer[] arr = {10,5,12,45,32,20,18};
        Arrays.sort(arr,(a,b)-> b - a);
        System.out.println(Arrays.toString(arr));
        //[45, 32, 20, 18, 12, 10, 5]
```

2.数组转化字符串

1)一维数组(常用)

```java
Arrays.toString(array)
```


```java
int[] arr = {1, 2, 3};
String str = Arrays.toString(arr);  // "[1, 2, 3]"

```

2)二维数组

```bash
Arrays.deepToString(array)
```


```bash
int[][] arr = {{1, 2}, {3, 4}};
String str = Arrays.deepToString(arr);  // "[[1, 2], [3, 4]]"

```

3.数组复制

1)创建一个新数组,包含原数组的前newLength 个元素。如果新长度大于原数组长度,则新增元素会被填充为默认值(如 0)。

```bash
Arrays.copyOf(array, newLength)
```


```java
int[] arr = {1, 2, 3};
int[] newArr = Arrays.copyOf(arr, 5);  // [1, 2, 3, 0, 0]

```

2) 创建一个新数组,复制原数组指定范围的元素(from 包含,to 不包含)。

```java
Arrays.copyOfRange(array, from, to)
```


```java
int[] arr = {1, 2, 3, 4, 5};
int[] subArr = Arrays.copyOfRange(arr, 1, 4);  // [2, 3, 4]

```

4.数组填充

1)将数组中的所有元素设置为指定的值。

```java
Arrays.fill(array, value)
```


```java
int[] arr = new int[5];
Arrays.fill(arr, 7);  // [7, 7, 7, 7, 7]

```

2)将数组中从fromIndextoIndex 范围内的元素设置为指定值。

```java
Arrays.fill(array, fromIndex, toIndex, value) 
```


```java
int[] arr = new int[5];
Arrays.fill(arr, 1, 4, 9);  // [0, 9, 9, 9, 0]

```

5.数组比较

判断两个数组是否相等。数组相等的标准是数组的长度相同且对应位置的元素相等。

```java
Arrays.equals(array1, array2)
```


```java
int[] arr1 = {1, 2, 3};
int[] arr2 = {1, 2, 3};
boolean isEqual = Arrays.equals(arr1, arr2);  // true

```

其他操作 :

常见数据类型的最大值和最小值

```bash
Integer.MAX_VALUE / Integer.MIN_VALUE
Long.MAX_VALUE / Long.MIN_VALUE
Float.MAX_VALUE / Float.MIN_VALUE
Double.MAX_VALUE / Double.MIN_VALUE
```

集合转化成数组

```cpp
        // 将 List 转换为数组
        String[] array = list.toArray(new String[0]);
        // 将 Set 转换为数组
        String[] array = set.toArray(new String[0]);
        // 将 Queue 转换为数组
        String[] array = queue.toArray(new String[0]);
        // 将 Map 的键转换为数组
        String[] keys = map.keySet().toArray(new String[0]);

        // 将 Map 的值转换为数组
        String[] values = map.values().toArray(new String[0]);
```
  • 对于 ListSetQueue,可以使用 toArray() 方法直接将其转换为数组。
  • 对于 Map,你可以选择将其键、值或条目转换为数组,使用 keySet()values()entrySet() 方法。

字符与字符串的转换

1)字符数组转字符串String.valueOf()String 构造函数。

```cpp
char[] charArray = {'a', 'b', 'c'};
String str = new String(charArray);  // str = "abc"

```

2)字符串转字符 :使用 charAt() 获取指定位置的字符。

```cpp
String str = "hello";
char ch = str.charAt(0);  // ch = 'h'

```

字符串和整型之间的转化

1)字符串转整型(String - > int)

要将字符串转换为整型,可以使用Integer.parseInt()Integer.valueOf() 方法。

```cpp
String str = "123";
int num = Integer.parseInt(str);
System.out.println(num);  // 输出:123

```


```cpp
String str = "123";
int num = Integer.valueOf(str);  // 返回的是 Integer 对象
System.out.println(num);  // 输出:123

```

2)整型转字符串(int -> String)

要将整型转换为字符串,可以使用String.valueOf()Integer.toString() 方法。

```cpp
int num = 123;
String str = String.valueOf(num);
System.out.println(str);  // 输出:"123"

```


```cpp
int num = 123;
String str = Integer.toString(num);
System.out.println(str);  // 输出:"123"

```

.............................

还有遗留的等遇到会慢慢补充,这个会长期更新...

感谢大家的支持!!!

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/5213.html

(0)
LomuLomu
上一篇 2025 年 1 月 4 日 上午12:54
下一篇 2025 年 1 月 5 日 下午10:25

相关推荐

  • 深入解析 Spring AI 系列:以OpenAI与Moonshot案例为例寻找共同点

    今天,我们将重点探讨对接的业务逻辑。为了帮助大家更直观地掌握其中的规律性,我将通过对比OpenAI与《月之暗面》中的Moonshot两个案例来阐述这一点。通过这样的对比,大家可以更清晰地看到,这些对接业务的整体框架其实非常相似。换句话说,我们要做的工作只是其中的一小部分,但它同样是关键的一环。 好了,接下来我们就开始深入了解这个话题。 模型对接 我们首先需要…

    2025 年 1 月 11 日
    17100
  • Java中的线程安全的集合类(如果想知道Java中有关线程安全的集合类的知识,那么只看这一篇就足够了!)

    前言:在多线程编程领域,确保集合类的线程安全性对于维护数据的一致性和防止并发问题至关重要。Java 提供了一系列线程安全的集合类,它们各自在不同的并发场景下展现出独特的优势和局限。 在深入探讨之前,让我们先概览本文将要覆盖的主要内容: 目录 1.线程安全的集合类概览 2.多线程环境下ArrayList的使用策略 (1)直接操作ArrayList (2)利用C…

    2024 年 12 月 28 日
    11700
  • JVM虚拟机监控及性能调优实战

    大家好,欢迎来到 程序视点!我是小二哥。 今天我们再来聊聊jvisualvm 目录 jvisualvm介绍 代码语言:txt 复制 “` 1. jvisualvm是JDK自带的可以远程监控内存,跟踪垃圾回收,执行时内存,CPU/线程分析,生成堆快照等的工具。 2. jvisualvm是从JDK1.6开始被继承到JDK中的。 “` jvisualvm使用 …

    2025 年 1 月 17 日
    15800
  • (2025自测有效!)全网最好的python配置教程【非常非常适合小白】

    前几天我的电脑刚刚重装,把python重新配置了一下。 1.Python环境部署Python3 可应用于多平台包括 Windows、Linux 和 Mac OS X。 Python官网:https://www.python.org/ 进入官网在导航栏选择Dowmloads,选择所使用的系统(以Windows为例) 进入Windows下载页之后选择需要下载的版…

    2025 年 1 月 10 日
    12200
  • Java 大视界 — Java 开发 Spark 应用:RDD 操作与数据转换(四)

    💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客 !能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的博客 ,正是这样一个温暖美好的所在。在这里,你们不仅能够收获既富有趣味又极为实用的内容知识,还可以毫无拘束地畅所欲言,尽情分享自己独特的见解。我真诚地期待着你们的到来,愿我们能在这片…

    2025 年 1 月 1 日
    16000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信