connection

map

集合框架
* java.util.Collection
*集合与数组相似,也是可以保存一组元素,并且提供了操作元素的相关方法.
*collection是所有集合的顶级接口,规定了集合应有的基本功能方法
*collection下面两个常见的子接口:
*java.util.List:可重复集,并且有序
*java.util.Set:不可重复集,大部分实现类无序
*元素是否重复依靠元素自身equals比较的结果而定

java5中有泛型,注解,增强循环,自动装箱和自动拆箱

泛型(generics) 能够在编译期检查出错误

class cast异常

编译器

擦除法----一个参数化的类型经过擦除后会去除参数

一开始没有泛型时,若集合中添加的元素类型不一致,会增加使用者的责任(需要记住每一个元素的类型,要不然在运行就会报错),而且编译器也无法甄别错误

泛型的出现就是为了解决上述问题

所谓泛型,就是为了避免强制转换太频繁,增加开发者负担.

所以我们用一个方法定义一个泛型,以list为模板可以实例化很多类,如果传错类型会直接编译不通过

这样子就省去了运行时再发现错误了

但是问题来了,实例化这么多类,系统会不会受不了呢?

这是,我们用到一个方法,擦除,即将Arraylist<integer>直接擦除为Arraylist

所有类型定义为object这个父类,如果你需要转换,设置自动转换类型便可以了

但是我们又得考虑到实现接口,而且得知道apple是fruit的子类

但是Arraylist<fruit>不是Arraylist<apple>的父类

所以推荐使用extends关键字,即<? extends fruit>这种格式来判断

引入一个通配符

Arraylist<? extends fruit> list :只能遍历读list,不能向list中加入新的元素

Arraylist<? super fruit> list : 可以循环遍历,可以向list中加入Apple

系统分层

泛型-----键值对----映射 hashmap--entry中key value 链表的更多相关文章

  1. 从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射

    从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射.Collection 接口又有 3 ...

  2. 【转】HashMap集合中key只能为引用数据类型,不能为基本类型

    在HashMap中,为什么不能使用基本数据类型作为key? 其实和HashMap底层的存储原理有关,HashMap存储数据的特点是:无序.无索引.不能存储重复元素. 存储元素采用的是hash表存储数据 ...

  3. 深入解读键值产生原理,linux中的软链接和硬链接(转)

    键值 = 文件标示符 + 项目ID 当用到进程间的通信时, 必须要注意到的是键值是怎么产生的,我们知道任何一个文件时通过文件名来访问的, 而内核在对应的给其一个值,也就是文件标示符. 系统建立IPC通 ...

  4. SpringBoot的配置属性文件*.properties值如何映射到类中使用

    想要在JAVA Bean中读取配置文件中的内容有两种方式,可以进行获取到 第一种方式: 1.在默认的配置文件application.properties 中进行设置 Key-Value键值对 com. ...

  5. GridView内按钮Click获取记录主键值 在GridView控件中,每行记录内会放置一个铵钮,当用

    在GridView控件中,每行记录内会放置一个铵钮,当用户点击这个铵钮时,获取当笔记录的主键值.可看演示(是一个gif动画,重新播放尝试刷新网页): 实现这个功能,你需要为GridView控件设置Da ...

  6. 2021-2-17:Java HashMap 的中 key 的哈希值是如何计算的,为何这么计算?

    首先,我们知道 HashMap 的底层实现是开放地址法 + 链地址法的方式来实现. 即数组 + 链表的实现方式,通过计算哈希值,找到数组对应的位置,如果已存在元素,就加到这个位置的链表上.在 Java ...

  7. [19/03/26-星期二] 容器_Map(图、键值对、映射)接口之HashMap(散列映射)&TreeMap(树映射)

    一.概念&方法 现实生活中,我们经常需要成对存储某些信息.比如,我们使用的微信,一个手机号只能对应一个微信账户,这就是一种成对存储的关系. Map就是用来存储“键(key)-值(value) ...

  8. CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储

    CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...

  9. angularJS操作键值对象(类似java的hashmap)填坑小结

    前言: 我们知道java的hashmap中使用最多的是put(...),get(...)以及remove()方法,那么在angularJS中如何创造(使用)这样一个对象呢 思路分析: 我们知道在jav ...

随机推荐

  1. SQL查询无限层级结构的所有下级,所有上级

    无限层级结构的table1表,Id(主键),ParentId(父级id)查询某个Id的所有下级或所有上级,使用WITH AS,UNION ALL 查询 1.查询Id为1所有的下级 WITH T AS( ...

  2. Openwrt配置小记

    手中有台Netgear WNR2000v3,一直想尝试Openwrt,于是刷机.官方最新固件的稳定版本为15.05.1,该版本自带luci,BUT,不能保存配置,上网查了很久,得出结论,是由于WNR2 ...

  3. SpringBoot入坑-请求参数传递

    前一篇我们探讨了关于springboot的配置文件和Controller的使用,本篇我们来一起探讨一下关于springboot如何传递参数的知识. 参数传递我们最常见的就是在url后通过?/& ...

  4. rabbitmq - java client lib一二事

    由于不可抗因素, 需要给对接方撸一个client的demo.基于比较老的jdk. 所幸找到了这里:http://www.rabbitmq.com/releases/rabbitmq-java-clie ...

  5. layui---表单验证

    使用layui,使用它的表单验证也是比不可少的,下面就来总结下: <!-- 不用form 用div也可以 --> <form class="layui-form" ...

  6. F - Rescue 优先队列bfs

    来源poj Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is described as a ...

  7. F - Currency Exchange

    来源poj1860 everal currency exchange points are working in our city. Let us suppose that each point sp ...

  8. python中print(obj) 与sys.stdout.write()的区别

    print(obj) 其实等价于sys.stdout.write(obj+\n),而\r表示回到行首,所以需要输出进度条时可以用以下代码 rate = float(has_sent) / float( ...

  9. Mysql 索引迁移策略

    Mysql 索引迁移策略 近日在核查项目中的一些慢sql时发现一个很鸡仔儿的问题,本地开发库表中索引跟生产上差距很大,又因为生产库登录各种麻烦,需要各种验证码,那么多的慢sql分给好些个人,不可能让大 ...

  10. Spring-Boot之Redis基础

    Spring-Boot之Redis基础 准备 Redis下载地址:github.com/MSOpenTech/redis/releases Redis数据库的默认端口号是 6379 开启Redis服务 ...