深入解读Java三大集合之map list set的用法


Posted in Java/Android onNovember 11, 2021

Map接口和Collection接口是所有集合框架的父接口:

Collection接口的子接口包括:Set接口和List接口
Map接口的实现类主要有:HashMap、TreeMap、Hashtable、ConcurrentHashMap以及Properties等
Set接口的实现类主要有:HashSet、TreeSet、LinkedHashSet等
List接口的实现类主要有:ArrayList、LinkedList、Stack以及Vector等

List,Set,Map三者的区别?List、Set、Map 是否继承自 Collection 接口?List、Map、Set 三个接口存取元素时,各有什么特点?

深入解读Java三大集合之map list set的用法

Collection集合主要有List和Set两大接口

(1)List:是一个有序,元素可以重复。常用的实现类有 ArrayList、LinkedList 和 Vector。
(2)Set:是一个无序,不可以存储重复元素,只允许存入一个null元素,Set 接口常用实现类是 HashSet、LinkedHashSet 以及 TreeSet。

Map

Map是一个键值对集合,存储键、值和之间的映射。 Key无序,唯一;value 不要求有序,允许重复。Map没有继承于Collection接口,从Map集合中检索元素时,只要给出键对象,就会返回对应的值对象。

Map 的常用实现类:HashMap、TreeMap、HashTable、LinkedHashMap、ConcurrentHashMap

  • (1)Map 存元素和取元素和删除(put、get、remove)
import java.util.HashMap;
/**
 * Map 存元素和取元素和删除(put、get、remove)
 * @author 小治的高等数学
 *
 */
public class Map1 {
	public static void main(String[] args) {
		 // 创建 HashMap 对象 Sites
        HashMap<String, String> sites = new HashMap<String, String>();
        // 添加键值对
        sites.put("1", "Google");
        sites.put("2", "Runoob");
        sites.put("3", "Taobao");
        sites.put("4", "Zhihu");
        // 输出Map中所有元素
        System.out.println(sites);
        // 拿出Map中key的为1的value的值
        System.out.println(sites.get("1"));
        System.out.println(sites.get("3"));
        sites.remove("3");
        System.out.println(sites.get("3"));
        System.out.println(sites);
	}
}
  • (2)循环Map
package basics.map;
 
import java.util.HashMap;
import java.util.Map.Entry;
public class Map2 {
	public static void main(String[] args) {
		 // 创建 HashMap 对象 Sites
        HashMap<Integer, String> sites = new HashMap<Integer, String>();
        // 添加键值对
        sites.put(4, "Zhihu");
        sites.put(1, "Google");
        sites.put(2, "Runoob");
        sites.put(3, "Taobao");
        sites.put(4, "Zhihu2");
        // 只循环 key
        for (Integer i : sites.keySet()) {
            System.out.println("key: " + i + " value: " + sites.get(i));
        }
        // 只循环 value 值
        for(String value: sites.values()) {
          // 输出每一个 value
          System.out.println(value + ", ");
        }
        
        // 循环 key 和 value
        for (Entry<Integer, String> entry : sites.entrySet()) {
        	System.out.println("只输出key "+entry.getKey());
        	System.out.println("只输出value "+entry.getValue());
        }
        
        for (int i = 0; i <= sites.size(); i++) {
			System.out.println(sites.get(i));
		}
	}
}

以上就是深入解读Java三大集合之map list set的用法的详细内容,更多关于Java 三大集合的资料请关注三水点靠木其它相关文章!

Java/Android 相关文章推荐
java中重写父类方法加不加@Override详解
Jun 21 Java/Android
详解Java线程池是如何重复利用空闲线程的
Jun 26 Java/Android
Springboot配置suffix指定mvc视图的后缀方法
Jul 03 Java/Android
Java移除无效括号的方法实现
Aug 07 Java/Android
Logback 使用TurboFilter实现日志级别等内容的动态修改操作
Aug 30 Java/Android
Mybatis-Plus进阶分页与乐观锁插件及通用枚举和多数据源详解
Mar 21 Java/Android
java后台调用接口及处理跨域问题的解决
Mar 24 Java/Android
教你在 Java 中实现 Dijkstra 最短路算法的方法
Apr 08 Java/Android
Android在Sqlite3中的应用及多线程使用数据库的建议
Apr 24 Java/Android
解决spring.thymeleaf.cache=false不起作用的问题
Jun 10 Java/Android
Java获取字符串编码格式实现思路
Sep 23 Java/Android
Java结构型设计模式之组合模式详解
Sep 23 Java/Android
详解JAVA的控制语句
Nov 11 #Java/Android
Java 实战项目之家居购物商城系统详解流程
Nov 11 #Java/Android
Java8中Stream的一些神操作
springboot如何接收application/x-www-form-urlencoded类型的请求
Nov 02 #Java/Android
Java 在生活中的 10 大应用
Nov 02 #Java/Android
使用Spring处理x-www-form-urlencoded方式
Nov 02 #Java/Android
Java 实现限流器处理Rest接口请求详解流程
You might like
收音机史话 - 1960年代前后的DIY
2021/03/02 无线电
smtp邮件发送一例
2006/10/09 PHP
使用 PHPMAILER 发送邮件实例应用
2012/11/07 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
网页里控制图片大小的相关代码
2006/06/25 Javascript
js 页面输出值
2008/11/30 Javascript
Javascript开发之三数组对象实例介绍
2012/11/12 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
2013/05/05 Javascript
jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
2016/01/15 Javascript
JS实现的颜色实时渐变效果完整实例
2016/03/25 Javascript
微信小程序  简单实例(阅读器)的实例开发
2016/09/29 Javascript
AngularJS Phonecat实例讲解
2016/11/21 Javascript
jQuery为某个div加入行样式
2017/06/09 jQuery
Angular4如何自定义首屏的加载动画详解
2017/07/26 Javascript
BootStrap导航栏问题记录
2017/07/31 Javascript
详解angular笔记路由之angular-router
2017/09/12 Javascript
vue小图标favicon不显示的解决方案
2017/09/19 Javascript
vue实现在一个方法执行完后执行另一个方法的示例
2018/08/25 Javascript
JavaScript查看代码运行效率console.time()与console.timeEnd()用法
2019/01/18 Javascript
angular中的post请求处理示例详解
2020/06/30 Javascript
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
python实现合并多个list及合并多个django QuerySet的方法示例
2019/06/11 Python
python中eval与int的区别浅析
2019/08/11 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
Python尾递归优化实现代码及原理详解
2020/10/09 Python
CSS3教程:边框属性border的极致应用
2009/04/02 HTML / CSS
Johnston & Murphy官网: 约翰斯顿·墨菲牛津总统鞋
2018/01/09 全球购物
95%的面试官都会问到的50道Java线程题,附答案
2012/08/03 面试题
网上商城创业计划书范文
2014/01/31 职场文书
药品业务员岗位职责
2014/04/17 职场文书
承兑汇票转让证明怎么写?
2014/11/30 职场文书
校长一岗双责责任书
2015/05/09 职场文书
穆斯林的葬礼读书笔记
2015/06/26 职场文书
聊聊Python中关于a=[[]]*3的反思
2021/06/02 Python
分布式架构Redis中有哪些数据结构及底层实现原理
2022/03/13 Redis