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接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值