更新时间:2022-09-05 10:52:38 来源:极悦 浏览878次
HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。
HashMap实现了Map接口,根据键值的HashCode存储数据,最多允许一条的访问速度,记录的键为null,不支持线程同步。
HashMap 是无序的,即不会记录的顺序。
HashMap继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。
HashMap 的 key 和 value 类型可以相同也可以不同,可以是字符串(String)类型的 key 和 value,也可以是整型(Integer)的 key 和字符串(String)的 value。
HashMap 中的元素实际上是对象,一些常见的基本类型可以使用它的包装类。
HashMap 类提供了很多有用的方法,添加键值对(key-value)可以使用 put() 方法:
// 引入 HashMap 类
import java.util.HashMap ;
public class RunoobTest {
public static void main ( String [ ] args ) {
// 创建 HashMap 对象 Sites
HashMap < Integer , String > Sites = new HashMap < Integer , String > ( ) ;
// 添加键值对
站点。放(1,“谷歌” );
网站。放(2,“Runoob” );
网站。put ( 3 , “淘宝” ) ;
网站。放(4、《知乎》);
系统。出来。println (网站) ;
}
}
执行以上代码,输出结果如下:
{1=谷歌, 2=Runoob, 3=淘宝, 4=知乎}1 =谷歌2 = Runoob 3 =淘宝4 =知乎}
实例创建一个字符串(String)类型的键和字符串(String)类型的值:
// 引入 HashMap 类
import java.util.HashMap ;
public class RunoobTest {
public static void main ( String [ ] args ) {
// 创建 HashMap 对象 Sites
HashMap < String , String > Sites = new HashMap < String , String > ( ) ;
// 添加键值对
站点。放(“一个”,“谷歌” );
网站。放(“两个”,“Runoob” );
网站。put ( “三”、“淘宝” ) ;
网站。放(“四”、“知乎” );
系统。出来。println (网站) ;
}
}
执行以上代码,输出结果如下:
{四=知乎,一=谷歌,二=Runoob,三=淘宝}四=知乎,一=谷歌,二= Runoob ,三=淘宝}
我们可以使用 get(key) 方法来获取 key 的值:
// 引入 HashMap 类
import java.util.HashMap ;
public class RunoobTest {
public static void main ( String [ ] args ) {
// 创建 HashMap 对象 Sites
HashMap < Integer , String > Sites = new HashMap < Integer , String > ( ) ;
// 添加键值对
站点。放(1,“谷歌” );
网站。放(2,“Runoob” );
网站。put ( 3 , “淘宝” ) ;
网站。放(4、《知乎》);
系统。出来。println (站点。获取(3 ));
}
}
执行以上代码,输出结果如下:
淘宝
我们可以使用 remove(key) 方法来删除 key 的键值对(key-value):
// 引入 HashMap 类
import java.util.HashMap ;
public class RunoobTest {
public static void main ( String [ ] args ) {
// 创建 HashMap 对象 Sites
HashMap < Integer , String > Sites = new HashMap < Integer , String > ( ) ;
// 添加键值对
站点。放(1,“谷歌” );
网站。放(2,“Runoob” );
网站。put ( 3 , “淘宝” ) ;
网站。放(4、《知乎》);
网站。删除(4 );
系统。出来。println (网站) ;
}
}
执行以上代码,输出结果如下:
{1=谷歌, 2=Runoob, 3=淘宝}1 =谷歌, 2 = Runoob , 3 =淘宝}
删除所有键值对(key-value)可以使用清除方法:
// 引入 HashMap 类
import java.util.HashMap ;
public class RunoobTest {
public static void main ( String [ ] args ) {
// 创建 HashMap 对象 Sites
HashMap < Integer , String > Sites = new HashMap < Integer , String > ( ) ;
// 添加键值对
站点。放(1,“谷歌” );
网站。放(2,“Runoob” );
网站。put ( 3 , “淘宝” ) ;
网站。放(4、《知乎》);
网站。清除( ) ;
系统。出来。println (网站) ;
}
}
执行以上代码,输出结果如下:
{}
如果计算 HashMap 中的元素数量可以使用 size() 方法:
// 引入 HashMap 类
import java.util.HashMap ;
public class RunoobTest {
public static void main ( String [ ] args ) {
// 创建 HashMap 对象 Sites
HashMap < Integer , String > Sites = new HashMap < Integer , String > ( ) ;
// 添加键值对
站点。放(1,“谷歌” );
网站。放(2,“Runoob” );
网站。put ( 3 , “淘宝” ) ;
网站。放(4、《知乎》);
系统。出来。println (站点。大小( ) ) ;
}
}
执行以上代码,输出结果如下:
4
使用 for-each 可以重复 HashMap 中的元素。
如果你只需要获取key,就可以使用keySet()方法,然后可以通过get(key)获取的值,如果你获取某个值,可以使用()方法。
// 引入 HashMap 类
import java.util.HashMap ;
public class RunoobTest {
public static void main ( String [ ] args ) {
// 创建 HashMap 对象 Sites
HashMap < Integer , String > Sites = new HashMap < Integer , String > ( ) ;
// 添加键值对
站点。放(1,“谷歌” );
网站。放(2,“Runoob” );
网站。put ( 3 , “淘宝” ) ;
网站。放(4、《知乎》);
// 输出 key 和value
for ( Integer i : Sites.keySet ( ) ) { System . 出来。println ( "key: " + i + " value: " + Sites.get ( i )
) ;
}
// 返回所有 value 值
for ( String value : Sites.values ( ) ) { // 输出每个值System . 出来。打印(值+ “,” );} } }
执行以上代码,输出结果如下:
键:1 值:谷歌
键:2 值:Runoob
键:3 值:淘宝
键:4 值:知乎
谷歌、Runoob、淘宝、知乎、
以上就是关于“Java中HashMap详解”的介绍,如果大家想了解更多相关知识,不妨来关注一下极悦的HashMap底层实现原理视频教程,里面的课程内容细致全面,通俗易懂,适合没有基础的小伙伴学习,希望对大家能够有所帮助。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习