1.泛型的向上限定和向下限定
import java.util.ArrayList;
import java.util.Collection;
class Animal {
}
class Dog extends Animal {
}
class Cat extends Animal {
}
class GenericDemo {
public static void main(String[] args) {
Collection<Object> c1 = new ArrayList<Object>();
Collection<Animal> c2 = new ArrayList<Animal>();
//? super Animal:向上限定Animal及其子类。
Collection<? super Animal> c3 = new ArrayList<Object>();
Collection<? super Animal> c4 = new ArrayList<Animal>();
//? super Animal:向下限定Animal及其子类。
Collection<? extends Animal> c5 = new ArrayList<Animal>();
Collection<? extends Animal> c6 = new ArrayList<Dog>();
Collection<? extends Animal> c7 = new ArrayList<Cat>();
}
}
2.泛型的四种遍历方式
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class ArrayListTest {
public static void main(String[] args) {
Student s1 = new Student("张三", 20);
Student s2 = new Student("李四", 21);
Student s3 = new Student("王五", 22);
List<Student> list = new ArrayList<>();
list.add(s1);
list.add(s2);
list.add(s3);
//使用迭代器遍历
Iterator<Student> iterator = list.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
System.out.println("------------------");
//使用列表迭代器遍历
ListIterator<Student> listIterator = list.listIterator();
while (listIterator.hasNext()) {
System.out.println(listIterator.next());
}
//使用size()和get()方法遍历
System.out.println("------------------");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
System.out.println("------------------");
//使用增强for遍历
for (Student i : list) {
System.out.println(i);
}
}
}
运行结果为:
3.可变参数应用于N个数求和问题
public class AdditionTest {
public static void main(String[] args) {
System.out.println(Add(1, 2));
System.out.println(Add(1, 2, 3));
}
public static int Add(int... num) {
int sum = 0;
for (int i : num) {
sum = sum + i;
}
return sum;
}
}
运行结果为: