Llist集合
/** * List的集合遍历方式一:使用Collection的Iterator
*/
Iterator iterator = list.iterator();
while (iterator.hasNext()){
String str = (String)iterator.next();
System.out.println(str);
}
/**
* List的集合遍历方式二:使用size()+get()模拟数组遍历
*/
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
/**
List的集合遍历方式三:使用List的特有迭代器ListIterator
这个迭代具备倒叙迭代,但是前置条件是必须使迭代器位于List末尾,可以与顺序迭代配合使用,
或设置迭代器位于List末尾 ListIterator listIterator = list.listIterator();
*/
ListIterator listIterator = list.listIterator();
while (listIterator.hasNext()){
String str = (String)listIterator.next();
System.out.println(str);
}
System.out.println("------------------");
while (listIterator.hasPrevious()){
String previous = (String)listIterator.previous();
System.out.println(previous);
}
/**
* 集合遍历的方式四:增强for循环,(常用)
*/
for(Object obj : list){
System.out.println(obj);
} |
泛型
泛型通配符的用法:
接口:
public interface Inter<T>{ public default void show(T t){
System.out.println(t);
}
}
| | 类:
public class ObjectTool<T> { int xx;
String xxx;
T xxxx;
public void show(T t){
System.out.println(t);
}
public <E>void method(E e){
System.out.println(e);
}
} | 测试:
public class ObjectToolDemo { public static void main(String[] args) {
ObjectTool<String> objectTool = new ObjectTool();
objectTool.show("true");
objectTool.method("hello");
new Inter<Integer>() {
}.show(100);
}
} | ?通配符
/** 泛型通配符:
?:任意数据类型,如果不进行明确 则默认为Object
? extends E:向下限定,要求?的类型必须的E的子类或者本身
? super E:向上限定,要求?的类型必须为E的父类或者本身
*/
public class Demo02 {
public static void main(String[] args){
List<Animal> animals = new ArrayList<Animal>();
animals.add(new Animal());
animals.add(new Animal());
show(animals);
List<Cat> cats = new ArrayList<Cat>();
cats.add(new Cat());
show(cats);
List<Dog> dogs = new ArrayList<Dog>();
cats.add(new Cat());
show(dogs);
}
public static void show (Collection<? extends Animal> c1){
System.out.println(c1);
}
}
class Animal{}
class Dog extends Animal{}
class Cat extends Dog{} |
|