集合迭代器增强for
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合迭代器增强for相关的知识,希望对你有一定的参考价值。
collection 和 list set 和 ArrayList LinkedList HashSet LinkedHashSet的关系
collection接口的方法
add() clear() contains() remove() size() toArray() 公用方法
public static void method(){ // 注意:集合中只能存放引用数据类型 //之所以集合中可以存放int类型的值是因为JDK5以后的自动装箱特性 ArrayList<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); for(int i = 0;i<list.size();i++){ System.out.println(list.get(i)); } // for(int i:list){ // System.out.println(i); // } } public static void method2(){ ArrayList<Person> list = new ArrayList<Person>(); list.add(new Person("houyi",28)); list.add(new Person("liyuanfang",27)); list.add(new Person("wangzhaojun",18)); for(Person p:list){ System.out.println(p); } } public static void method3(){ ArrayList<String> arr = new ArrayList<String>(); arr.add("aaa"); arr.add("aaa"); arr.add("bbb"); Object[] str = arr.toArray(); for(int i = 0;i<str.length;i++){ System.out.println(str[i]); } for(Object o:str){ System.out.println(o); } } public static void method1(){ Collection c = new ArrayList(); c.add("123"); c.add("456"); //c.add(1); for(Object obj:c){ String str = (String)obj; System.out.println(str.length()); } }
迭代器:用要进行迭代的集合调用方法来构建迭代器
增强for:用来遍历集合和数组,底层就是个迭代器
注意:next()方法的使用,调用一次指针就往下走一次,最好是把它赋给一个变量,然后对变量进行操作
泛型:使用集合时,必须明确集合中元素的数据类型的方式
有泛型的类:public ArrayList<E>{}
创建对象时,确定泛型类型
有泛型的方法:public <E> E[] toArray(E[] arr){}
调用方法时,确定泛型类型
有泛型的接口:public interface Iterator<E>{}
定义实现类时,确定泛型类型
创建对象时,确定泛型类型(迭代器的使用)
泛型的好处:把运行时期的类型转换问题,转移到了编译时期,避免了类型转换出错
泛型通配符:当泛型的类型不确定时,使用泛型通配符,使用了泛型通配符之后只能使用object类中的共有方法
通配符上限:?extends Person
通配符下限:?super Person
public static void main(String[] args) { // TODO Auto-generated method stub ArrayList<Person> list = new ArrayList<Person>(); list.add(new Person("zzhangsan",20)); list.add(new Person("lisi",22)); ArrayList<Studnet> l = new ArrayList<Studnet>(); l.add(new Studnet("xiaoming",22)); l.add(new Studnet("xiaohong",21)); printCollection(l); } public static void printCollection(Collection<?> list){ Iterator<?> it = list.iterator(); while(it.hasNext()){ System.out.println(it.next()); } }
以上是关于集合迭代器增强for的主要内容,如果未能解决你的问题,请参考以下文章