深入解读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 相关文章推荐
Spring mvc是如何实现与数据库的前后端的连接操作的?
Jun 30 Java/Android
Java 泛型详解(超详细的java泛型方法解析)
Jul 02 Java/Android
JavaWeb 入门篇(3)ServletContext 详解 具体应用
Jul 16 Java/Android
mybatis3中@SelectProvider传递参数方式
Aug 04 Java/Android
IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署
Sep 25 Java/Android
Spring Security中用JWT退出登录时遇到的坑
Oct 16 Java/Android
SpringBoot中获取profile的方法详解
Apr 08 Java/Android
JAVA长虹键法之建造者Builder模式实现
Apr 10 Java/Android
Java 写一个简单的图书管理系统
Apr 26 Java/Android
mybatis 获取更新记录的id
May 20 Java/Android
SpringBoot项目部署到阿里云服务器的实现步骤
Jun 28 Java/Android
app场景下uniapp的扫码记录
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不允许用户提交空表单(php空值判断)
2013/11/12 PHP
PHP开发框架kohana3 自定义路由设置示例
2014/07/14 PHP
ThinkPHP3.2.3数据库设置新特性
2015/03/05 PHP
Smarty foreach控制循环次数的一些方法
2015/07/01 PHP
php批量修改表结构实例
2017/05/24 PHP
JS获得QQ号码的昵称,头像,生日的简单实例
2013/12/04 Javascript
JS获取网页属性包括宽、高等等
2014/04/03 Javascript
node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
2014/11/20 Javascript
jQuery中nextUntil()方法用法实例
2015/01/07 Javascript
js实现鼠标触发图片抖动效果的方法
2015/02/27 Javascript
JQuery中DOM事件绑定用法详解
2015/06/13 Javascript
Bootstrap开发实战之响应式轮播图
2016/06/02 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
2016/11/23 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
2017/01/21 Javascript
JS简单验证上传文件类型的方法
2017/04/17 Javascript
浅谈js的解析顺序 作用域 严格模式
2017/10/23 Javascript
在vue项目中使用sass的配置方法
2018/03/20 Javascript
详解swipe使用及竖屏页面滚动方法
2018/06/28 Javascript
layui的表单验证支持ajax判断用户名是否重复的实例
2019/09/06 Javascript
JavaScript实现像雪花一样的Hexaflake分形
2020/07/07 Javascript
JavaScript Dom实现轮播图原理和实例
2021/02/19 Javascript
python在控制台输出进度条的方法
2015/06/20 Python
解决python3 网络请求路径包含中文的问题
2018/05/10 Python
Python SQL查询并生成json文件操作示例
2018/08/17 Python
Python3 导入上级目录中的模块实例
2019/02/16 Python
Django框架序列化与反序列化操作详解
2019/11/01 Python
互动出版网:专业书籍
2017/03/21 全球购物
GANT英国官方网上商店:甘特衬衫
2018/02/06 全球购物
如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
2012/02/15 面试题
《永远的白衣战士》教学反思
2014/04/25 职场文书
销售顾问工作计划书
2014/08/15 职场文书
打架赔偿协议书范本
2014/10/26 职场文书
2014年工程师工作总结
2014/11/25 职场文书
2014年创先争优工作总结
2014/12/11 职场文书
初二英语教学反思
2016/02/15 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书