热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javamap、collections常见方法、泛型上下界

Map接口概述:map集合是不可以直接迭代的将键映射到值得对象一个映射不能包含重复的键每个键最多只能映射到一个值Map接口和Collection接口的不同Map是双列

Map接口概述:  map集合是不可以直接迭代的

  将键映射到值得对象

  一个映射不能包含重复的键

  每个键最多只能映射到一个值

 

Map接口和Collection接口的不同

  Map是双列的,Collection是单列

  Map的键是唯一的, Collection的子体系Set是唯一的

  Map集合的数据结构值针对键有效,跟值无关;Collection集合的数据结构是针对元素有效

 

Map maps &#61; new HashMap<>();

// 添加元素 maps.put("A", 10); 没有key值A&#xff0c;就返回null。 原来存在A就返回被覆盖的value值

// 修改元素 maps.replace("F", 65);

// 删除元素 maps.remove("E");
// 是否包含key maps.containsKey&#xff08;"E"&#xff09;
// 是否包含value maps.containsValue&#xff08;100&#xff09;
// 返回所有key   maps.keySet() 是set
// 返回所有value maps.value()    collection
// 返回map的size maps.size()
// 根据key获取value maps.get("key")

 

 

LinkedhashMap 怎么存 怎么取 链表结构

TreeMap&#xff1a; 需要重构比较器&#xff0c;痛TreeSet一样

 

hashmap和hashtable的区别&#xff1a;

  共同点&#xff1a;底层都是hash算法 都是双链集合

  区别&#xff1a;hashmap是线程不安全的&#xff0c;效率高

     hashtable是线程安全的&#xff0c;效率低

     hashmap可以存储null键和null值

     hashtable不可以存储null键和值

shuffle 随机排序

 

泛型上下界&#xff1a;

  

上界

上界用 extends 关键字声明&#xff0c;表示参数化的类型可能是所指定的类或者其任意子类。泛型的上界就是 B 类。

形如 List&#xff0c;具体哪一种不能确定&#xff0c;既可以是 B&#xff0c;也可以是 C。在尝试执行 add() 方法时&#xff0c;List中的类型不能确定是具体哪一种&#xff0c;所以会编译报错。在执行 get() 方法时&#xff0c;不管是 B 还是 &#xff23;&#xff0c;都可以以 &#xff21; 类对象来接收。所以 List 不能添加元素&#xff0c;具有只读属性&#xff0c;只能获取。


下界

下界用 super 关键字声明&#xff0c;表示参数化的类型可能是所指定的类型或者其任意父类。泛型的下界就是 B 类。

形如 List&#xff0c;具体哪一种不能确定&#xff0c;既可以是 B&#xff0c;也可以是 A&#xff0c;直至 Object类。在尝试执行 add() 方法时&#xff0c;虽然 List 的具体类型不能确定&#xff0c;但是根据多态&#xff0c; B 类及其子类的对象肯定都可以被赋值给 B 的对象&#xff0c;所以只能添加 B 类及其子类的对象。在尝试执行 get() 方法时&#xff0c;List 中的类型是 B 类或者其父类的具体一种&#xff0c;向上直至 Object 类&#xff0c;所以只能将获取的元素赋值给 Object 对象。






转:https://www.cnblogs.com/pengranxindong/p/9984263.html



推荐阅读
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 开发笔记:Java是如何读取和写入浏览器Cookies的
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java是如何读取和写入浏览器Cookies的相关的知识,希望对你有一定的参考价值。首先我 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • Java程序设计第4周学习总结及注释应用的开发笔记
    本文由编程笔记#小编为大家整理,主要介绍了201521123087《Java程序设计》第4周学习总结相关的知识,包括注释的应用和使用类的注释与方法的注释进行注释的方法,并在Eclipse中查看。摘要内容大约为150字,提供了一定的参考价值。 ... [详细]
  • Whatsthedifferencebetweento_aandto_ary?to_a和to_ary有什么区别? ... [详细]
  • 重入锁(ReentrantLock)学习及实现原理
    本文介绍了重入锁(ReentrantLock)的学习及实现原理。在学习synchronized的基础上,重入锁提供了更多的灵活性和功能。文章详细介绍了重入锁的特性、使用方法和实现原理,并提供了类图和测试代码供读者参考。重入锁支持重入和公平与非公平两种实现方式,通过对比和分析,读者可以更好地理解和应用重入锁。 ... [详细]
  • 本文整理了Java面试中常见的问题及相关概念的解析,包括HashMap中为什么重写equals还要重写hashcode、map的分类和常见情况、final关键字的用法、Synchronized和lock的区别、volatile的介绍、Syncronized锁的作用、构造函数和构造函数重载的概念、方法覆盖和方法重载的区别、反射获取和设置对象私有字段的值的方法、通过反射创建对象的方式以及内部类的详解。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
author-avatar
阿克苏的风格
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有