Java基础学习(四)-- 接口、集合框架、Collection、泛型详解
接口
class 实现类 implements 接口1,接口2{//某类实现了两个接口 @Override public void print() { System.out.println("接口1的抽象方法print()"); } @Override public void get() { System.out.println("接口2的抽象方法get()"); } }
interface A{ public void funA(); } interface B{ public void funB(); } interface C extends A,B{//C接口同时继承了A和B两个接口 public void funC(); }
(5).抽象类是类,接口是一种规范。
集合框架
ArrayList<String> strings = new ArrayList<String>(); strings.add("123"); strings.add("345"); Iterator<String> iterator = strings.iterator(); while (iterator.hasNext()) { String s = iterator.next(); System.out.println(s); }
3.ArrayList和LinkedList的区别
Iterator<String> iterator = hashSet.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); }
Class Person implmments Comparable { @Override public int compareTo(Object obj) { Person p = (Person) obj; if (this.age > p.age) { return 1; }else if (this.age < p.age) { return -1; }else{ return 0; } } }
Set<Person> hashSet = new TreeSet<Person>(new Comparator<Person>() { @Override public int compare(Person o1, Person o2) { return o1.getAge()-02.getAge(); } });
TreeSet<Person> list = new TreeSet<Person>(new cp()); class cp implements Comparator<Person>{ @Override public int compare(Person o1, Person o2) { // TODO Auto-generated method stub return o1.getAge()-02.getAge(); } }
Set<String> keySet = map1.keySet(); for (String string : keySet) { System.out.println(map1.get(string)); }
Collection<String> values = map1.values(); Iterator<String> iterator = values.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); }
Set<Entry<String, String>> entrySet = map1.entrySet(); for (Entry<String, String> entry : entrySet) { //System.out.println(entry.getKey()+"-"+entry.getValue()); System.out.println(entry); }
Collections工具类
泛型 — 参数化类型
泛型接口
1.声明泛型接口 interface inter<T>{ void test(T t); } 2.实现类如果实现泛型接口,不能直接使用接口的泛型,需要重新声明 class test3<T> implements inter<T>{ @Override public void test(T t) { // TODO Auto-generated method stub } } 3.如果实现类不想作为泛型类,那么可以实现接口时直接给泛型的接口赋值。 class test3 implements inter<String>{ @Override public void test(String t) { // TODO Auto-generated method stub } }
泛型方法
class test3{ public <T> void test(T t) { System.out.println(); } public static <T> void test1(T t) { System.out.println(); } public static <T> void test2(T... t) { for(T t1 : t){ System.out.println(); } } } 1.调用:test3.test("String"); 2.调用:test3.test2(1,true,"123"); test3.test2(nwe Integer[]{1,2,3});