深入解读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 Kafka 消费积压监控的示例代码
Jul 01 Java/Android
Lombok的详细使用及优缺点总结
Jul 15 Java/Android
Java中CyclicBarrier和CountDownLatch的用法与区别
Aug 23 Java/Android
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
Sep 25 Java/Android
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
Dec 06 Java/Android
Spring事务管理下synchronized锁失效问题的解决方法
Mar 31 Java/Android
Java中的继承、多态以及封装
Apr 11 Java/Android
Java由浅入深通关抽象类与接口(上篇)
Apr 26 Java/Android
JAVA springCloud项目搭建流程
May 11 Java/Android
Java处理延时任务的常用几种解决方案
Jun 01 Java/Android
Java多线程并发FutureTask使用详解
Jun 28 Java/Android
volatile保证可见性及重排序方法
Aug 05 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版(4)
2006/10/09 PHP
laravel5创建service provider和facade的方法详解
2016/07/26 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
2019/10/18 PHP
使Ext的Template可以解析二层的json数据的方法
2007/12/22 Javascript
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
HTML上传控件取消选择
2013/03/06 Javascript
javascript中不等于的代码是什么怎么写
2013/12/29 Javascript
原生javascript实现图片滚动、延时加载功能
2015/01/12 Javascript
使用mouse事件实现简单的鼠标经过特效
2015/01/30 Javascript
js事件监听器用法实例详解
2015/06/01 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
2016/04/18 Javascript
JavaScript判断页面加载完之后再执行预定函数的技巧
2016/05/17 Javascript
jQuery使用unlock.js插件实现滑动解锁
2017/04/04 jQuery
详解vue组件化开发-vuex状态管理库
2017/04/10 Javascript
JS利用cookies设置每隔24小时弹出框
2017/04/20 Javascript
JavaScript实现购物车基本功能
2017/07/21 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
2019/01/18 jQuery
JavaScript递归函数定义与用法实例分析
2019/01/24 Javascript
使用vue自定义指令开发表单验证插件validate.js
2019/05/23 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
vue render函数动态加载img的src路径操作
2020/10/26 Javascript
Ant Design moment对象和字符串之间的相互转化教程
2020/10/27 Javascript
python调用c++传递数组的实例
2019/02/13 Python
pandas 选取行和列数据的方法详解
2019/08/08 Python
查看Python依赖包及其版本号信息的方法
2019/08/13 Python
python global关键字的用法详解
2019/09/05 Python
自适应线性神经网络Adaline的python实现详解
2019/09/30 Python
使用Python操作ArangoDB的方法步骤
2020/02/02 Python
虚拟机下载python是否需要联网
2020/07/27 Python
HTML5添加禁止缩放功能
2017/11/03 HTML / CSS
世界上最伟大的马产品:Equiderma
2020/01/07 全球购物
《泉水》教学反思
2014/04/11 职场文书
王亚平太空授课观后感
2015/06/12 职场文书
董事长开业致辞
2015/07/29 职场文书
JS前端轻量fabric.js系列之画布初始化
2022/08/05 Javascript