深入解读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 相关文章推荐
详解SpringBoot异常处理流程及原理
Jun 21 Java/Android
Java常用函数式接口总结
Jun 29 Java/Android
新手初学Java网络编程
Jul 07 Java/Android
Java反应式框架Reactor中的Mono和Flux
Jul 25 Java/Android
Java比较两个对象中全部属性值是否相等的方法
Aug 07 Java/Android
Java 实战项目之家居购物商城系统详解流程
Nov 11 Java/Android
Java使用JMeter进行高并发测试
Nov 23 Java/Android
JVM之方法返回地址详解
Feb 28 Java/Android
SpringBoot整合Minio文件存储
Apr 03 Java/Android
JavaWeb Servlet开发注册页面实例
Apr 11 Java/Android
SpringBoot接入钉钉自定义机器人预警通知
Jul 15 Java/Android
springboot+rabbitmq实现智能家居实例详解
Jul 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
PHP COOKIE设置为浏览器进程
2009/06/21 PHP
php学习之运算符相关概念
2011/06/09 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
2016/05/18 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
JavaScript事件列表解说
2006/12/22 Javascript
用javascript父窗口控制只弹出一个子窗口
2007/04/10 Javascript
Autocomplete Textbox Example javascript实现自动完成成功
2007/08/17 Javascript
基于jquery实现的表格分页实现代码
2011/06/21 Javascript
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
2013/05/08 Javascript
jQuery之自动完成组件的深入解析
2013/06/19 Javascript
JS的事件绑定深入认识
2014/06/26 Javascript
JavaScript弹出对话框的三种方式
2016/03/23 Javascript
在JavaScript中对HTML进行反转义详解
2016/05/18 Javascript
BootStrap 图标icon符号图标glyphicons不正常显示的快速解决办法
2016/12/08 Javascript
JS重载实现方法分析
2016/12/16 Javascript
jQuery焦点图轮播效果实现方法
2016/12/19 Javascript
Bootstrap模态框使用详解
2017/02/15 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
layui前端框架之table表数据的刷新方法
2018/08/17 Javascript
vue中使用mxgraph的方法实例代码详解
2019/05/17 Javascript
小程序使用wxs解决wxml保留2位小数问题
2019/12/13 Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
2020/09/02 Javascript
python3+PyQt5自定义视图详解
2018/04/24 Python
Python基于Floyd算法求解最短路径距离问题实例详解
2018/05/16 Python
在python shell中运行python文件的实现
2019/12/21 Python
使用pickle存储数据dump 和 load实例讲解
2019/12/30 Python
python3利用Axes3D库画3D模型图
2020/03/25 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
详解Scrapy Redis入门实战
2020/11/18 Python
用CSS3打造HTML5的Logo(实现代码)
2016/06/16 HTML / CSS
String和StringBuffer的区别
2015/08/13 面试题
庆六一宣传标语
2014/10/08 职场文书
开展批评与自我批评发言稿
2014/10/16 职场文书
实习计划书范文
2015/01/16 职场文书
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
详解Go语言Slice作为函数参数的使用
2021/07/02 Golang