深入解读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并发编程之详解CyclicBarrier线程同步
Jun 23 Java/Android
SpringBoot实现异步事件驱动的方法
Jun 28 Java/Android
Java集成swagger文档组件
Jun 28 Java/Android
HashMap实现保存两个key相同的数据
Jun 30 Java/Android
Java基础-封装和继承
Jul 02 Java/Android
SpringBoot SpringEL表达式的使用
Jul 25 Java/Android
SpringBoot2零基础到精通之异常处理与web原生组件注入
Mar 22 Java/Android
Netty客户端接入流程NioSocketChannel创建解析
Mar 25 Java/Android
Java 关于String字符串原理上的问题
Apr 07 Java/Android
零基础学java之循环语句的使用
Apr 10 Java/Android
Java设计模式中的命令模式
Apr 28 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扩展图文教程
2008/12/12 PHP
php 方便水印和缩略图的图形类
2009/05/21 PHP
php自动加载的两种实现方法
2010/06/21 PHP
自定义php类(查找/修改)xml文档
2013/03/26 PHP
PHP保留两位小数的几种方法
2019/07/24 PHP
jquery选择器-根据多个属性选择示例代码
2013/10/21 Javascript
JS实现点击文字对应DIV层不停闪动效果的方法
2015/03/02 Javascript
jquery trigger实现联动的方法
2016/02/29 Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
2016/05/29 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
2016/08/16 Javascript
JavaScript日期选择功能示例
2017/01/16 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
2017/01/21 Javascript
Vue.js学习之过滤器详解
2017/01/22 Javascript
js简单实现网页换肤功能
2017/04/07 Javascript
JavaScript 中的 this 工作原理
2018/06/20 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
使用Node.js实现base64和png文件相互转换的方法
2020/03/11 Javascript
[05:35]DOTA2英雄梦之声_第13期_拉比克
2014/06/21 DOTA
Windows 7下Python Web环境搭建图文教程
2018/03/20 Python
pandas pivot_table() 按日期分多列数据的方法
2018/11/16 Python
python监控进程状态,记录重启时间及进程号的实例
2019/07/15 Python
python关于矩阵重复赋值覆盖问题的解决方法
2019/07/19 Python
python将数组n等分的实例
2019/12/02 Python
python selenium自动化测试框架搭建的方法步骤
2020/06/14 Python
Python语法垃圾回收机制原理解析
2020/03/25 Python
PyTorch安装与基本使用详解
2020/08/31 Python
python语言time库和datetime库基本使用详解
2020/12/25 Python
HTML5之SVG 2D入门10—滤镜的定义及使用
2013/01/30 HTML / CSS
Canvas高级路径操作之拖拽对象的实现
2019/08/05 HTML / CSS
通过canvas转换颜色为RGBA格式及性能问题的解决
2019/11/22 HTML / CSS
美国运动鞋和服装网上商店:YCMC
2018/09/15 全球购物
化妆品促销方案
2014/02/24 职场文书
医院院务公开实施方案
2014/05/03 职场文书
法院执行局工作总结
2015/08/11 职场文书
Java网络编程之UDP实现原理解析
2021/09/04 Java/Android