深入解读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 相关文章推荐
为什么在foreach循环中JAVA集合不能添加或删除元素
Jun 11 Java/Android
Win10系统下配置Java环境变量
Jun 13 Java/Android
浅谈自定义校验注解ConstraintValidator
Jun 30 Java/Android
Sleuth+logback 设置traceid 及自定义信息方式
Jul 26 Java/Android
SpringBoot+VUE实现数据表格的实战
Aug 02 Java/Android
Logback 使用TurboFilter实现日志级别等内容的动态修改操作
Aug 30 Java/Android
SpringMVC 整合SSM框架详解
Aug 30 Java/Android
Spring Security中用JWT退出登录时遇到的坑
Oct 16 Java/Android
深入解读Java三大集合之map list set的用法
Nov 11 Java/Android
JavaCV实现照片马赛克效果
Jan 22 Java/Android
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
Apr 13 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
BBS(php &amp; mysql)完整版(一)
2006/10/09 PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
2011/06/06 PHP
php页面消耗内存过大的处理办法
2013/03/18 PHP
PHP伪造来源HTTP_REFERER的方法实例详解
2015/07/06 PHP
PHP设计模式之工厂模式与单例模式
2016/09/28 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
PHP获取类私有属性的3种方法
2020/09/10 PHP
静态页面的值传递(三部曲)
2006/09/25 Javascript
javascript一点特殊用法
2008/05/28 Javascript
JS支持带x身份证号码验证函数
2008/08/10 Javascript
IE事件对象(The Internet Explorer Event Object)
2012/06/27 Javascript
文字溢出实现溢出的部分再放入一个新生成的div中具体代码
2013/05/17 Javascript
jQuery获得内容和属性示例代码
2014/01/16 Javascript
jQuery+ajax实现动态执行脚本的方法
2015/01/27 Javascript
分享我对JS插件开发的一些感想和心得
2016/02/04 Javascript
微信小程序绑定手机号获取验证码功能
2019/10/22 Javascript
Vue解决echart在element的tab切换时显示不正确问题
2020/08/03 Javascript
如何在 Vue 表单中处理图片
2021/01/26 Vue.js
搞笑的程序猿:看看你是哪种Python程序员
2015/06/12 Python
django celery redis使用具体实践
2019/04/08 Python
python3调用windows dos命令的例子
2019/08/14 Python
Python字节单位转换实例
2019/12/05 Python
opencv python如何实现图像二值化
2020/02/03 Python
Python loguru日志库之高效输出控制台日志和日志记录
2020/03/07 Python
HTML5 canvas 基本语法
2009/08/26 HTML / CSS
联想新加坡官方网站:Lenovo Singapore
2017/10/24 全球购物
沪江旗下的海量优质课程平台:沪江网校
2017/11/07 全球购物
行政人员工作职责
2013/12/05 职场文书
计算机网络专业自荐书
2014/06/09 职场文书
就业协议书怎么填
2014/09/15 职场文书
党员评议思想汇报
2014/10/08 职场文书
失职检讨书大全
2015/01/26 职场文书
庆祝教师节新闻稿
2015/07/17 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书
浅谈PHP7中的一些小技巧
2021/05/29 PHP
python plt.plot bar 如何设置绘图尺寸大小
2021/06/01 Python