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. 乾坤合一~Linux设备驱动之块设备驱动

    1. 题外话 在蜕变成蝶的一系列学习当中,我们已经掌握了大部分Linux驱动的知识,在乾坤合一的分享当中,以综合实例为主要讲解,在一个月的蜕茧成蝶的学习探索当中,觉得数据结构,指针,链表等等占据了代码 ...

  2. TIJ -- 吐司BlockingQueue

    1. 吐司BlockingQueue 考虑下面这个使用BlockingQueue的示例.有一台机器具有三个任务:一个制作吐司,一个给吐司抹黄油,另一个在抹过黄油的吐司上吐果酱.我们可以通过各个处理过程 ...

  3. POI导出Excel发现不可读取的内容

    环境说明:MyEclipse Tomcat7.0 通过后台查询数据,导出Excel在打开时会出现以下提示: 点击否,则不显示任何内容,点击是,弹出 查看修改记录为: 通过WPS打开不会出现任何提示,可 ...

  4. C#Windows Service程序的创建安装与卸载

    C#Windows Service程序的创建安装与卸载 一.开发环境 操作系统:Windows7x64 sp1 专业版 开发环境:Visual studio 2013 编程语言:C# .NET版本: ...

  5. VSCode远程调试Go程序方法(Attach)

    set launch.json { "name": "Attach", "type": "go", "requ ...

  6. 11.14 redis

    2018-11-14 10:07:39 购物车有思路,用django中redis来做!!!具体思路参考下面笔记 回学校后,把笔记里面面试题都认真整理一下!!!!!! 越努力,越幸运!永远不要高估自己! ...

  7. Nest.js 添加中间件

    Docs: https://docs.nestjs.com/middleware 创建中间件 logger.middleware.ts import { Injectable, NestMiddlew ...

  8. Mysql 索引迁移策略

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

  9. 史上最完整的Android开发工具集合(转)

    需要的:戳这里:http://www.apkbus.com/thread-252748-1-1.html

  10. Codeforces 1090B - LaTeX Expert - [字符串模拟][2018-2019 Russia Open High School Programming Contest Problem B]

    题目链接:https://codeforces.com/contest/1090/problem/B Examplesstandard input The most famous characters ...