集合(关于Map)

本文详细解析了Map集合与Collection的区别,并深入探讨了Map集合的共性方法,包括添加、删除、判断、获取和长度功能,以及如何遍历Map集合,最后介绍了Map集合的两个常见实现类HashMap和TreeMap。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


Map集合是双列集合的顶层接口,下面分为TreeMap和HashMap.

那么我们先来看一下Map和collection的区别:

1.Map是双列的,而collection是单列的

2.Map的键都是唯一的,而collection中只有set集合的值是唯一的

3.Map集合的数据结构值针对键有效,跟值无关;Collection集合的数据结构是针对元素有效

(一)Map集合共性方法的使用.
 1):添加功能
        V put(K key,V value):添加元素。
        如果该键是第一次存储的,就直接存储元素,返回null
        如果该键不是第一次存储,也就是说,前面有相同的键,那么就用该键把以前的键替换掉,返回以前的值(记住是返回以前的键)
 2):删除功能
       void clear():移除所有的键值对元素
       V remove(Object key):根据键删除键值对元素,并把值返回
 3):判断功能
       boolean containsKey(Object key):判断该集合是否包含指定的键
       boolean containsValue(Object value):判断该集合是否包含指定的值
       boolean isEmpty():判断集合是否为空
 4):获取功能
        Set<Map.Entry<K,V>> entrySet():
        V get(Object key):根据键获取值
        Set<K> keySet():获取集合中所有键的集合
         集合.get(Object key):获取集合中所有值的集合
5):长度功能
         int size():返回集合中的键值对的个数

(二)Map集合的遍历

在这里要说明一下,Map集合的遍历和collection的遍历是不一样的,因为Map集合是以键值对的形式存在的,下面来介绍两种遍历Map集合的方法.

 1).根据键获取值   

public static void main(String[] args) {
		TreeMap<String, Integer> tm = new TreeMap<>();
		tm.put("张三", 23);
		tm.put("李四", 24);
		tm.put("王五", 25);
		Set<String> s = tm.keySet();//获取到集合的键
		for(String str : s) {
			Integer value = tm.get(str);通过get(key)获取到值
		}
	}
这种方式没什么难度,就是先定义泛型,然后根据keySet方法获取键,遍历集合,通过get(key)获取到值

2).根据键值对分别获取到键和值

                Set<Map.Entry<String, Integer>> entry = tm.entrySet();
		//开始遍历这个集合获取到键值对
		for(Map.Entry<String, Integer> en : entry) {
			//分别获取到键和值
			String key = en.getKey();
			Integer value = en.getValue();
			//输出
			System.out.println(key + "..." + value);
这种方法其实也并不难,就是多了一个步骤,那就是用entrySet()方法获取到集合的键值对,遍历集合,再分别用getKey(),和getValue()方法获取到键和值.

(三)Map集合的常见两个实现类.
我在这里就只提HashMap和TreeMap这两个集合,TreeList和HashList存储元素或者对象的时候需要注意哪些问题.
1,HashMap集合
HashMap键的位置存储自定义元素,想要保证键唯一,就要依赖元素所属类的hashCode() 和 equals()方法.
2,TreeMap集合
TreeMap集合键存储自定义对象,保证键唯一且实现排序:
自然顺序(存入的对象的类需要实现comparable接口)
比较器顺序(自定义比较器即可)
3,HashMap和Hashtable的区别
HashMap允许使用 null 值和 null 键。线程不同步,效率低。
Hashtable不允许使用 null 值和 null 键。线程同步,效率高。

资源下载链接为: https://pan.quark.cn/s/9648a1f24758 这个HTML文件是一个专门设计的网页,适合在告白或纪念日这样的特殊时刻送给女朋友,给她带来惊喜。它通过HTML技术,将普通文字转化为富有情感和创意的表达方式,让数字媒体也能传递深情。HTML(HyperText Markup Language)是构建网页的基础语言,通过标签描述网页结构和内容,让浏览器正确展示页面。在这个特效网页中,开发者可能使用了HTML5的新特性,比如音频、视频、Canvas画布或WebGL图形,来提升视觉效果和交互体验。 原本这个文件可能是基于ASP.NET技术构建的,其扩展名是“.aspx”。ASP.NET是微软开发的一个服务器端Web应用程序框架,支持多种编程语言(如C#或VB.NET)来编写动态网页。但为了在本地直接运行,不依赖服务器,开发者将其转换为纯静态的HTML格式,只需浏览器即可打开查看。 在使用这个HTML特效页时,建议使用Internet Explorer(IE)浏览器,因为一些老的或特定的网页特效可能只在IE上表现正常,尤其是那些依赖ActiveX控件或IE特有功能的页面。不过,由于IE逐渐被淘汰,现代网页可能不再对其进行优化,因此在其他现代浏览器上运行可能会出现问题。 压缩包内的文件“yangyisen0713-7561403-biaobai(html版本)_1598430618”是经过压缩的HTML文件,可能包含图片、CSS样式表和JavaScript脚本等资源。用户需要先解压,然后在浏览器中打开HTML文件,就能看到预设的告白或纪念日特效。 这个项目展示了HTML作为动态和互动内容载体的强大能力,也提醒我们,尽管技术在进步,但有时复古的方式(如使用IE浏览器)仍能唤起怀旧之情。在准备类似的个性化礼物时,掌握基本的HTML和网页制作技巧非常
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值