成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

HashMap Key & Lmmutable類型使用原理

開發 前端
String 、Integer 都是final 修飾的累,都很好的重寫了 hashCode 和 equals方法,最關鍵的他們是Immutable類,為不可變類。可以保證hashCode的穩定性。

思考,為什么我們在HashMap put key 的時候經常使用String 或者Integer?

A:String 、Integer 都是final 修飾的累,都很好的重寫了 hashCode 和 equals方法,最關鍵的他們是Immutable類,為不可變類。可以保證hashCode的穩定性。

不可變類的優點與用途

1. 線程安全,省去了加鎖的過程,因為對象內容不可變就不用擔心線程同時對對象做修改

2. 拷貝效率高。當類不可變時, 拷貝其對象只需拷貝指針即可,而不用拷貝對象本身,不用擔心會被修改

3. 可以作為HashMap的key,類不可變保證了Hashcode的穩定性。

如果讓你實現一個自定義的class作為HashMap的key該如何實現?

A:主要關注兩點即可

覆寫hashCode以及equals方法應該遵循的原則

實現一個Immutable的類,那么如何實現一個不可變類呢。

1)類需要用final修飾

2)成員變量使用 private final 修飾、對外不提供set方法。

3)如果成員函數使用構造函數去接受外部的數據,成員變量,需要使用接受對象的拷貝(copy)

4)Get方法返回外部接受的成員變量,返回成員變量的拷貝(copy)

package com.jessyframe.learn;

import java.lang.String;
import java.utils.Arrays;
/**
*
* Created by jessy on 2022/12/24.
*/
public final class Immutable {
private final int identity;
private final String value;
private final int[] arr;

public Immutable(int identity, String value, int[] outArr) {
this.identity = identity;
this.value = value;
//this.arr = outArr; //不正確
this.arr = outArr.clone();//使用傳入數組的copy初始化
}

public int[] getArr() {
//return arr; //不正確
return arr.clone(); //返回數組的copy
}


public static void main(String[] args) {
int[] arr = new int[]{12,34};
Immutable im = new Immutable(123,"jessyframe", arr);
int[] arr1 = im.getArr();
Arrays.stream(arr1).forEach((e) -> {System.out.println(e);});
arr[0] = 56;
arr[1] = 78;
Arrays.stream(arr1).forEach((e) -> {System.out.println(e);});
}

}

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2023-01-04 07:54:03

HashMap底層JDK

2023-10-18 10:55:55

HashMap

2016-09-12 14:33:20

javaHashMap

2023-07-11 08:00:00

2021-09-10 06:50:03

HashMapHash方法

2013-06-06 13:10:44

HashMap無鎖

2015-09-02 08:57:56

JavaHashMap工作原理

2023-07-05 07:30:44

StringHashMapKey類型

2024-06-04 08:32:40

2022-03-11 07:37:39

hashCodeHashMap數據結構

2017-03-22 14:23:58

Java HashMa實現原理

2021-08-29 07:41:48

數據HashMap底層

2021-12-13 10:43:45

HashMapJava集合容器

2024-07-03 08:24:58

2020-09-25 08:49:42

HashMap

2023-09-14 11:45:24

HashMap散列表

2015-01-06 09:59:03

2023-02-17 14:35:15

HashMapNode類型

2011-05-24 10:19:39

VMware快照

2021-06-09 07:55:19

Typescript類型檢查
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品成人一区二区三区夜夜夜 | 日韩一区二区三区在线视频 | 亚洲黄色av| 久久久久久久国产 | 成人午夜黄色 | 高清亚洲 | 男女羞羞免费视频 | 国产精品人人做人人爽 | 亚洲国产成人精品女人久久久 | 中文精品视频 | 精品日韩一区二区 | 一区二区三区四区在线视频 | 国产香蕉视频 | 中文字幕在线观看视频网站 | av在线免费播放 | 久久久123 | 五月婷婷在线播放 | 欧美一级免费看 | 国产网站在线播放 | 伊人久操| 超碰av人人| 久久精品福利视频 | 毛片网在线观看 | 久久丝袜视频 | 国产精品日韩欧美一区二区三区 | 国产高潮好爽受不了了夜夜做 | 亚洲精品一区二区另类图片 | 成人影视网址 | 日韩精品成人 | 国产农村妇女毛片精品久久麻豆 | 成人影院免费视频 | 欧美在线观看一区 | 一级片成人| 黄色中文字幕 | 欧美综合一区 | 国产区第一页 | 欧美 日韩 国产 一区 | 日韩精品av一区二区三区 | 福利社午夜影院 | 影音先锋中文在线 | 日本a∨精品中文字幕在线 亚洲91视频 |