码迷,mamicode.com
首页 > 编程语言 > 详细

Java基础 笔记(四)

时间:2015-08-20 13:11:18      阅读:130      评论:0      收藏:0      [点我收藏+]

标签: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   泛型   

原文地址:http://blog.csdn.net/u011102153/article/details/47805325

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!