泛型:
泛型:通过<数据额类型>来接受一种引用数据类型。作用在编译时。使用检查 加入集合的对象是否属于该类型,从而把执行时的问题转换为编译时异常。提高程序的安全性 避免抛出 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”); }publicT 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(Foodequals().—>key是唯一的
TreeMap:(key-value)集合,依照键进行排序
和TreeSet相似
1)自然顺序
2)自己定义比較器 a 自己定义类实现Comparable接口 b 定义自己定义比較器类。实现Comparator接口(key-value)集合,依照键进行排序
和TreeSet相似
1)自然顺序
2)自己定义比較器 a 自己定义类实现Comparable接口 b 定义自己定义比較器类。实现Comparator接口