更新時(shí)間:2022-09-05 10:52:38 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1138次
HashMap 是一個(gè)散列表,它存儲(chǔ)的內(nèi)容是鍵值對(duì)(key-value)映射。
HashMap實(shí)現(xiàn)了Map接口,根據(jù)鍵值的HashCode存儲(chǔ)數(shù)據(jù),最多允許一條的訪問(wèn)速度,記錄的鍵為null,不支持線程同步。
HashMap 是無(wú)序的,即不會(huì)記錄的順序。
HashMap繼承于AbstractMap,實(shí)現(xiàn)了Map、Cloneable、java.io.Serializable接口。
HashMap 的 key 和 value 類型可以相同也可以不同,可以是字符串(String)類型的 key 和 value,也可以是整型(Integer)的 key 和字符串(String)的 value。
HashMap 中的元素實(shí)際上是對(duì)象,一些常見(jiàn)的基本類型可以使用它的包裝類。
HashMap 類提供了很多有用的方法,添加鍵值對(duì)(key-value)可以使用 put() 方法:
// 引入 HashMap 類
import java.util.HashMap ;
public class RunoobTest {
public static void main ( String [ ] args ) {
// 創(chuàng)建 HashMap 對(duì)象 Sites
HashMap < Integer , String > Sites = new HashMap < Integer , String > ( ) ;
// 添加鍵值對(duì)
站點(diǎn)。放(1,“谷歌” );
網(wǎng)站。放(2,“Runoob” );
網(wǎng)站。put ( 3 , “淘寶” ) ;
網(wǎng)站。放(4、《知乎》);
系統(tǒng)。出來(lái)。println (網(wǎng)站) ;
}
}
執(zhí)行以上代碼,輸出結(jié)果如下:
{1=谷歌, 2=Runoob, 3=淘寶, 4=知乎}1 =谷歌2 = Runoob 3 =淘寶4 =知乎}
實(shí)例創(chuàng)建一個(gè)字符串(String)類型的鍵和字符串(String)類型的值:
// 引入 HashMap 類
import java.util.HashMap ;
public class RunoobTest {
public static void main ( String [ ] args ) {
// 創(chuàng)建 HashMap 對(duì)象 Sites
HashMap < String , String > Sites = new HashMap < String , String > ( ) ;
// 添加鍵值對(duì)
站點(diǎn)。放(“一個(gè)”,“谷歌” );
網(wǎng)站。放(“兩個(gè)”,“Runoob” );
網(wǎng)站。put ( “三”、“淘寶” ) ;
網(wǎng)站。放(“四”、“知乎” );
系統(tǒng)。出來(lái)。println (網(wǎng)站) ;
}
}
執(zhí)行以上代碼,輸出結(jié)果如下:
{四=知乎,一=谷歌,二=Runoob,三=淘寶}四=知乎,一=谷歌,二= Runoob ,三=淘寶}
我們可以使用 get(key) 方法來(lái)獲取 key 的值:
// 引入 HashMap 類
import java.util.HashMap ;
public class RunoobTest {
public static void main ( String [ ] args ) {
// 創(chuàng)建 HashMap 對(duì)象 Sites
HashMap < Integer , String > Sites = new HashMap < Integer , String > ( ) ;
// 添加鍵值對(duì)
站點(diǎn)。放(1,“谷歌” );
網(wǎng)站。放(2,“Runoob” );
網(wǎng)站。put ( 3 , “淘寶” ) ;
網(wǎng)站。放(4、《知乎》);
系統(tǒng)。出來(lái)。println (站點(diǎn)。獲取(3 ));
}
}
執(zhí)行以上代碼,輸出結(jié)果如下:
淘寶
我們可以使用 remove(key) 方法來(lái)刪??除 key 的鍵值對(duì)(key-value):
// 引入 HashMap 類
import java.util.HashMap ;
public class RunoobTest {
public static void main ( String [ ] args ) {
// 創(chuàng)建 HashMap 對(duì)象 Sites
HashMap < Integer , String > Sites = new HashMap < Integer , String > ( ) ;
// 添加鍵值對(duì)
站點(diǎn)。放(1,“谷歌” );
網(wǎng)站。放(2,“Runoob” );
網(wǎng)站。put ( 3 , “淘寶” ) ;
網(wǎng)站。放(4、《知乎》);
網(wǎng)站。刪除(4 );
系統(tǒng)。出來(lái)。println (網(wǎng)站) ;
}
}
執(zhí)行以上代碼,輸出結(jié)果如下:
{1=谷歌, 2=Runoob, 3=淘寶}1 =谷歌, 2 = Runoob , 3 =淘寶}
刪除所有鍵值對(duì)(key-value)可以使用清除方法:
// 引入 HashMap 類
import java.util.HashMap ;
public class RunoobTest {
public static void main ( String [ ] args ) {
// 創(chuàng)建 HashMap 對(duì)象 Sites
HashMap < Integer , String > Sites = new HashMap < Integer , String > ( ) ;
// 添加鍵值對(duì)
站點(diǎn)。放(1,“谷歌” );
網(wǎng)站。放(2,“Runoob” );
網(wǎng)站。put ( 3 , “淘寶” ) ;
網(wǎng)站。放(4、《知乎》);
網(wǎng)站。清除( ) ;
系統(tǒng)。出來(lái)。println (網(wǎng)站) ;
}
}
執(zhí)行以上代碼,輸出結(jié)果如下:
{}
如果計(jì)算 HashMap 中的元素?cái)?shù)量可以使用 size() 方法:
// 引入 HashMap 類
import java.util.HashMap ;
public class RunoobTest {
public static void main ( String [ ] args ) {
// 創(chuàng)建 HashMap 對(duì)象 Sites
HashMap < Integer , String > Sites = new HashMap < Integer , String > ( ) ;
// 添加鍵值對(duì)
站點(diǎn)。放(1,“谷歌” );
網(wǎng)站。放(2,“Runoob” );
網(wǎng)站。put ( 3 , “淘寶” ) ;
網(wǎng)站。放(4、《知乎》);
系統(tǒng)。出來(lái)。println (站點(diǎn)。大小( ) ) ;
}
}
執(zhí)行以上代碼,輸出結(jié)果如下:
4
使用 for-each 可以重復(fù) HashMap 中的元素。
如果你只需要獲取key,就可以使用keySet()方法,然后可以通過(guò)get(key)獲取的值,如果你獲取某個(gè)值,可以使用()方法。
// 引入 HashMap 類
import java.util.HashMap ;
public class RunoobTest {
public static void main ( String [ ] args ) {
// 創(chuàng)建 HashMap 對(duì)象 Sites
HashMap < Integer , String > Sites = new HashMap < Integer , String > ( ) ;
// 添加鍵值對(duì)
站點(diǎn)。放(1,“谷歌” );
網(wǎng)站。放(2,“Runoob” );
網(wǎng)站。put ( 3 , “淘寶” ) ;
網(wǎng)站。放(4、《知乎》);
// 輸出 key 和value
for ( Integer i : Sites.keySet ( ) ) { System . 出來(lái)。println ( "key: " + i + " value: " + Sites.get ( i )
) ;
}
// 返回所有 value 值
for ( String value : Sites.values ( ) ) { // 輸出每個(gè)值System . 出來(lái)。打印(值+ “,” );} } }
執(zhí)行以上代碼,輸出結(jié)果如下:
鍵:1 值:谷歌
鍵:2 值:Runoob
鍵:3 值:淘寶
鍵:4 值:知乎
谷歌、Runoob、淘寶、知乎、
以上就是關(guān)于“Java中HashMap詳解”的介紹,如果大家想了解更多相關(guān)知識(shí),不妨來(lái)關(guān)注一下動(dòng)力節(jié)點(diǎn)的HashMap底層實(shí)現(xiàn)原理視頻教程,里面的課程內(nèi)容細(xì)致全面,通俗易懂,適合沒(méi)有基礎(chǔ)的小伙伴學(xué)習(xí),希望對(duì)大家能夠有所幫助。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743