泛型:

泛型:通过<数据额类型>来接受一种引用数据类型。作用在编译时。使用检查

加入集合的对象是否属于该类型,从而把执行时的问题转换为编译时异常。提高程序的安全性

避免抛出 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基础 笔记(四)的更多相关文章

  1. Java基础笔记 – Annotation注解的介绍和使用 自定义注解

    Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 |  被围观 25,969 views+ 1.Anno ...

  2. 【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错

    原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-impor ...

  3. Java实习生常规技术面试题每日十题Java基础(四)

    目录 1.String 和StringBuffer的区别. 2.数组有没有length()这个方法? String有没有length()这个方法? 3.final, finally, finalize ...

  4. 黑马程序员----java基础笔记上(毕向东)

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 笔记一共记录了毕向东的java基础的25天课程,分上.中.下 本片为上篇,涵盖前10天课程 1. ...

  5. 黑马程序员----java基础笔记中(毕向东)

    <p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...

  6. Java学习笔记四---打包成双击可运行的jar文件

    写笔记四前的脑回路是这样的: 前面的学习笔记二,提到3个环境变量,其中java_home好理解,就是jdk安装路径:classpath指向类文件的搜索路径:path指向可执行程序的搜索路径.这里的类文 ...

  7. Java 基础(四)| IO 流之使用文件流的正确姿势

    为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 IO 流? 想象一个场景 ...

  8. Java基础笔记05-06-07-08

    五.今日内容介绍 1.方法基础知识 2.方法高级内容 3.方法案例 01方法的概述 * A: 为什么要有方法 * 提高代码的复用性 * B: 什么是方法 * 完成特定功能的代码块. 02方法的定义格式 ...

  9. Java基础笔记1

    java (开源,跨操作系统)j2ee jre java基础 javaoop java高级 JDK(JAVA developer Kitool): java开发工具 (开发人员使用) JRE(java ...

  10. JAVA基础第四章-集合框架Collection篇

    业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...

随机推荐

  1. shell 中exec、source以及bash的区别

    在bash shell中,source.exec以及sh都可以用来执行shell script,但是它们的差别在哪里呢? sh:父进程会fork一个子进程,shell script在子进程中执行 so ...

  2. 163 AJAX

    // 163 AJAX Tab // update 2006.10.18 // 增加鼠标延迟感应特性. // update 2006.10.8 // A 标签 href 属性将保持原有HTML功能.增 ...

  3. 在web中绘制图像 -- canvas篇

    汗,不小心点击发布了.其实正在编辑中...... HTML Canvas是现代浏览器中非常棒的绘图技术,Canvas可以绘制图形,操作图片,制作游戏,创建动画等:Canvas是很容易使用的,下面我们来 ...

  4. android 之 TabHost

    TabHost的实现有两种方式,第一种继承TabActivity,从TabActivity中用getTabHost()方法获取TabHost.各个Tab中的内容在布局文件中定义就行了. mainAct ...

  5. python算法-二叉树广度优先遍历

    广度优先遍历:优先遍历兄弟节点,再遍历子节点 算法:通过队列实现-->先进先出 广度优先遍历的结果: 50,20,60,15,30,70,12 程序遍历这个二叉树: # encoding=utf ...

  6. 请编写一个方法,返回某集合的所有非空子集。 给定一个int数组A和数组的大小int n,请返回A的所有非空子集。保证A的元素个数小于等于20,且元素互异。各子集内部从大到小排序,子集之间字典逆序排序,见样例。

    题解:观察测试样例,会发现每个子集的选择规律与二进制((2^n) - 1)到 1 的顺序生成的规律是一致的,样例中n=3,2^n-1=7,用二进制表示为111,其中每一位的1表示数组中的三个数都选择. ...

  7. A. Test for Job

    A. Test for Job Time Limit: 5000ms Case Time Limit: 5000ms Memory Limit: 65536KB   64-bit integer IO ...

  8. 九度oj 题目1342:寻找最长合法括号序列II

    题目描述: 假如给你一个由’(‘和’)’组成的一个随机的括号序列,当然,这个括号序列肯定不能保证是左右括号匹配的,所以给你的任务便是去掉其中的一些括号,使得剩下的括号序列能够左右括号匹配且长度最长,即 ...

  9. Git 撤消操作

    修改最后一次提交 有时候我们提交完了才发现漏掉了几个文件没有加,或者提交信息写错了.想要撤消刚才的提交操作,可以使用 --amend 选项重新提交: $ git commit --amend 此命令将 ...

  10. BZOJ 1426 收集邮票 ——概率DP

    $f(i)$表示现在有$i$张,买到$n$张的期望 所以$f(i)=f(i+1)+\frac {n}{n-i}$ 费用提前计算,每张邮票看做一元,然后使后面每一张加1元 $g(i)$表示当前为$i$张 ...