JDK中的泛型
Java中的泛型介绍:
起因:
1. JDK 1.4 以前类型不明确:
① 装入集合的对象被当作 Object 类型对待,从而失去了自己的原有类型;
② 从集合中取出时往往需要转型,效率低下,并且容易产生错误.
解决办法:
2. 解决办法
① 在定义集合的时候,同时定义集合中对象的类型;
② 可以在定义 Collection 的时候指定,也可以在循环时用 Iterator 指定.
好处:
3. 增强程序的可读性与稳定性.
Demo_1:
import java.util.*;
class MyName implements Comparable<MyName>{
private int age;
public MyName(int age) {
this.age = age;
} @Override
public int compareTo(MyName mn) {
if(this.age>mn.age){
return 1;
}else if(this.age<mn.age){
return -1;
}else {
return 0;
}
}
}
public class Test {
public static void main(String[] args) {
ArrayList<String> as = new ArrayList<String>();
as.add("aa");
as.add("bb");
as.add("cc");
as.add("dd");
for(int i=0;i<as.size();i++){
String sa = as.get(i);
System.out.print(sa+" "); // 输出:aa bb cc dd
}
System.out.println();
HashSet<String> hs = new HashSet<String>();
hs.add("a1");
hs.add("a2");
hs.add("a3");
hs.add("a4");
hs.add("a5");
for(Iterator<String> it=hs.iterator();it.hasNext();){
String sh = it.next();
System.out.print(sh+" "); // 输出:a1 a2 a3 a4 a5
}
System.out.println();
MyName m1 = new MyName(12);
MyName m2 = new MyName(25);
System.out.println(m1.compareTo(m2)); // 输出:-1
}
}
Demo_2:
import java.util.*;
public class Test {
public static void main(String[] args) {
HashMap<String, Double> mp = new HashMap<String, Double>();
mp.put("one", 112.365);
mp.put("two", 2.458);
mp.put("three", 126.258);
System.out.println(mp.size()); // 输出:3
System.out.println(mp.containsKey("two")); // 输出:true
if(mp.containsKey("three")){
Double i = mp.get("three"); // get Value
System.out.println(i); // 输出:126.258
}
}
}
JDK中的泛型的更多相关文章
- C++模拟实现JDK中的ArrayList和LinkedList
Java实现ArrayList和LinkedList的方式采用的是数组和链表.以下是用C++代码的模拟: 声明Collection接口: #ifndef COLLECTION_H_ #define C ...
- Java 中的泛型详解-Java编程思想
Java中的泛型参考了C++的模板,Java的界限是Java泛型的局限. 2.简单泛型 促成泛型出现最引人注目的一个原因就是为了创造容器类. 首先看一个只能持有单个对象的类,这个类可以明确指定其持有的 ...
- java中的泛型(转)
什么是泛型? 泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类.可以把类型参数看作是使用参数化类型时指定的类型的一个 ...
- Java开发知识之Java中的泛型
Java开发知识之Java中的泛型 一丶简介什么是泛型. 泛型就是指泛指任何数据类型. 就是把数据类型用泛型替代了. 这样是可以的. 二丶Java中的泛型 Java中,所有类的父类都是Object类. ...
- 扒一拔:Java 中的泛型(一)
目录 1 泛型 1.1 为什么需要泛型 1.2 类型参数命名规约 2 泛型的简单实用 2.1 最基本最常用 2.2 简单泛型类 2.2.1 非泛型类 2.2.2 泛型类的定义 2.2.3 泛型类的使用 ...
- Java中的泛型 --- Java 编程思想
前言 我一直都认为泛型是程序语言设计中一个非常基础,重要的概念,Java 中的泛型到底是怎么样的,为什么会有泛型,泛型怎么发展出来的.通透理解泛型是学好基础里面中非常重要的.于是,我对<Ja ...
- JDK中枚举的底层实现
前提 上一篇文章复习介绍了JDK中注解的底层实现,跟注解一样比较常用,但是底层实现比较神秘的还有枚举类型.趁着国庆假期的最后两天,把JDK中枚举的底层实现也进行一次探究. 通过例子查找本质 在探究JD ...
- java中的泛型2--注意的一些问题和面试题
前言 这里总结一下泛型中需要注意的一些地方和面试题,通过面试题可以让你掌握的更清楚一些. 泛型相关问题 1.泛型类型引用传递问题 在Java中,像下面形式的引用传递是不允许的: ArrayList&l ...
- Java中的泛型、枚举和注解
1.泛型: 一.为什么要有泛型(Generic)?1.解决元素存储的安全性问题任何类型都可以添加到集合中:类型不安全2.解决获取数据元素时,需要类型强转的问题读取出来的对象需要强转:繁琐可能有Clas ...
随机推荐
- jQuery 动画效果 与 动画队列
基础效果 .hide([duration ] [,easing ] [,complete ]) 用于隐藏元素,没有参数的时候等同于直接设置 display 属性 $('.target').hide() ...
- 一、Vue项目构建
Attention:以下内容为Mac机上运行,windows可能有所偏差- Step1 打开终端,键入npm install -g vue-cli,使用vue-cli脚手架搭建vue项目能省很多事儿- ...
- ubuntu下的python网页解析库的安装——lxml, Beautiful Soup, pyquery, tesserocr
lxml 的安装(xpath) pip3 install lxml 可能会缺少以下依赖: sudo apt-get install -y python3-dev build-e ssential li ...
- 通过devmem访问物理地址
目录 1.写在前面 2.devmem使用 3.应用层 4.内核层 1.写在前面 最近在调试时需要在用户层访问物理内存,发现应用层可以使用devmem工具访问物理地址.查看源码,实际上是对/dev/me ...
- fake_useragent 封装好user-agent的模块
from fake_useragent import UserAgent useragent = UserAgent()print(useragent.random)
- 决策树&随机森林
参考链接: https://www.bilibili.com/video/av26086646/?p=8 <统计学习方法> 一.决策树算法: 1.训练阶段(决策树学习),也就是说:怎么样构 ...
- sublime解决gbk中文乱码包括Package Control: Install Package 无法使用
最近喜欢上了sublime,打算抛弃notepad,但是发现sublime居然不支持gbk编码,再上网查找资料之后,总结了一套解决方法,目前为止是行之有效的. 日期:2019年3月14日 第一步:到G ...
- 成都Uber优步司机奖励政策(2月17日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 厦门Uber优步司机奖励政策(12月14日到12月20日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 2212: [Poi2011]Tree Rotations
2212: [Poi2011]Tree Rotations https://www.lydsy.com/JudgeOnline/problem.php?id=2212 分析: 线段树合并. 首先对每个 ...