Java基础 笔记(四)
泛型:
泛型:通过<数据额类型>来接受一种引用数据类型。作用在编译时。使用检查
加入集合的对象是否属于该类型,从而把执行时的问题转换为编译时异常。提高程序的安全性
避免抛出 ClassCastException。同一时候也不须要类型转换
<>什么时候使用?
当操作的引用数据类型不确定的时候。使用<>.把要操作的数据类型传进来就可以
事实上<>相当于接受详细的引用数据类型的參数范围
泛型在接口中的应用:
实例:
public class Demo21 {
public static void main(String[] args) {
Manager m = new Manager();
m.add(new Worker(“a”, 23));
m.add(new Worker(“ab”, 21));
m.add(new Worker(“ac”, 22));
System.out.println("delete-->" + m.del(1));
m.show();
}
static class Worker {
private String name;
private int age;
public Worker(String name, int age) {
super();
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Worker [name=" + name + ", age=" + age + "]";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
}
interface IManager {
public void add(T data);
public T del(int index);
public void show();
}
class Manager implements IManager {
private List list;
Manager() {
list = new ArrayList();
}
@Override
public void add(T data) {
list.add(data);
}
@Override
public T del(int index) {
T data = list.get(index);
list.remove(index);
return data;
}
@Override
public void show() {
Iterator it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
}
// 方法中使用泛型:当方法參数数据类型不确定,使用泛型
class GenericMethod {
public void test(T t) {
System.out.println(“没有返回值的方法t”);
}
public <T> T getT(T t) {
System.out.println("有返回值的方法getT");
return t;
}
}
通配符:?
限定类型:
? extends E: 接受E类型或者E的子类型,上限
一般存储对象的时候 addAll()
? super E:接受E类型或者E的父类型,下限
一般用取出对象,比較器
public class Demo22 {
public static void main(String[] args) {
Food f = new Food();
f.setFood(“汉堡”);
System.out.println(f.getFood());
Food f1 = new Food();
f1.setFood(100);
Food f2 = new Food();
buy(f);
buy(f1);
buy1(f1);
buy2(f);
buy2(f2);
}
public static void buy(Food
equals().—>key是唯一的
TreeMap:(key-value)集合,依照键进行排序
和TreeSet相似
1)自然顺序
2)自己定义比較器
a 自己定义类实现Comparable接口
b 定义自己定义比較器类。实现Comparator接口
(key-value)集合,依照键进行排序
和TreeSet相似
1)自然顺序
2)自己定义比較器
a 自己定义类实现Comparable接口
b 定义自己定义比較器类。实现Comparator接口
Java基础 笔记(四)的更多相关文章
- Java基础笔记 – Annotation注解的介绍和使用 自定义注解
Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 | 被围观 25,969 views+ 1.Anno ...
- 【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错
原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-impor ...
- Java实习生常规技术面试题每日十题Java基础(四)
目录 1.String 和StringBuffer的区别. 2.数组有没有length()这个方法? String有没有length()这个方法? 3.final, finally, finalize ...
- 黑马程序员----java基础笔记上(毕向东)
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 笔记一共记录了毕向东的java基础的25天课程,分上.中.下 本片为上篇,涵盖前10天课程 1. ...
- 黑马程序员----java基础笔记中(毕向东)
<p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...
- Java学习笔记四---打包成双击可运行的jar文件
写笔记四前的脑回路是这样的: 前面的学习笔记二,提到3个环境变量,其中java_home好理解,就是jdk安装路径:classpath指向类文件的搜索路径:path指向可执行程序的搜索路径.这里的类文 ...
- Java 基础(四)| IO 流之使用文件流的正确姿势
为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 IO 流? 想象一个场景 ...
- Java基础笔记05-06-07-08
五.今日内容介绍 1.方法基础知识 2.方法高级内容 3.方法案例 01方法的概述 * A: 为什么要有方法 * 提高代码的复用性 * B: 什么是方法 * 完成特定功能的代码块. 02方法的定义格式 ...
- Java基础笔记1
java (开源,跨操作系统)j2ee jre java基础 javaoop java高级 JDK(JAVA developer Kitool): java开发工具 (开发人员使用) JRE(java ...
- JAVA基础第四章-集合框架Collection篇
业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...
随机推荐
- windows终端输入pip install requests报错:Fatal error in launcher
emm今天群友发了个图,说他的pip报错,是这个问题 emmm这个问题我也不太懂,后来让他pip install requests这样操作,, 还是不管用,我寻思这个错咋回事,让他用 python ...
- Java POI 操作Excel(读取/写入)
pom.xml依赖: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi< ...
- FastJson生成json时,显示Null属性
FastJson生成json时,默认不会输出null字段. 移动端,有时候,需要后端提供完整的字段说明. Map < String , Object > jsonMap = new Has ...
- HDU 3506 DP 四边形不等式优化 Monkey Party
环形石子合并问题. 有一种方法是取模,而如果空间允许的话(或者滚动数组),可以把长度为n个换拓展成长为2n-1的直线. #include <iostream> #include <c ...
- java 简单秒杀
以下代码 不考虑多服务器 限制线程池的大小 和队列的限制来实现 package org.zhang; import java.util.concurrent.BlockingQueue; import ...
- linux 环境下bash脚本中找不到命令
mr.sh: line 1: HADOOP_CMD: command not found mr.sh: line 4: INPUT_FILE_PATH: command not found mr.sh ...
- localstorage与sessionstorage的使用
cookie,sessionStorage,localeStorage的区别 cookie是存储在浏览器端,并且随浏览器的请求一起发送到服务器端的,它有一定的过期时间,到了过期时间自动会消失.sess ...
- 九度oj 题目1283:第一个只出现一次的字符
题目描述: 在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符. 输入: 输入有多组数据 每一组输入一个字符串. 输出: 输出第一个只出现一次的 ...
- python 向MySQL里插入中文数据
用python向MySQL中插入中文数据出错,原代码片段: 1 db = MySQLdb.connect("localhost","root","12 ...
- 常州模拟赛d3t2 灰狼呼唤着同胞
题目背景 我的母亲柯蒂丽亚,是一个舞者.身披罗纱,一身异国装扮的她,来自灰狼的村子. 曾经在灰狼村子担任女侍的她,被认定在某晚犯下可怕的罪行之后,被赶出了村子. 一切的元凶,都要回到母亲犯下重罪的那一 ...