*JDK5很多新的性:增强for,静态导入(导入的方法级别,该方法是静态),可变参数,自动拆装箱
* 增强for的目的是为了替代迭代器,简化书写方式
* 引用场景:主要是在集合中使用居多,针对数组也可以使用
* 格式:
* for(数据类型 变量名:集合对象名){
* 输出变量名;
* }
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ForEachDemo {
public static void main(String[] args) {
int arr[]= {11,2,3,4,7,89};
for(int i:arr) {
System.out.println(i);
}
// 创建一个List集合对象:添加字符串数据
List<String>lt=new ArrayList<String>();
//添加元素
lt.add("qwe");
lt.add("java");
lt.add("javaee");
Iterator<String>it=lt.listIterator();
while(it.hasNext()) {
String s=it.next();
System.out.println(s+" "+s.length());
}
System.out.println("-------------------");
for (String string : lt) {//就是迭代器,只是为了简化书写方式
System.out.println(string);
}
}
}
需求:使用List集合存储自定义对象(Student)并遍历,加入泛型!
*
* 几种方式:
* 5种方式
* 1)toArray() (不用了)
* 2)Iterator iterator() :Collection迭代器
* 3)ListIterator listIterator() :列表迭代器
* 4)普通for循环:size()+get(int index)相结合
* 5)增强for循环:JDK5 的新特性
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class GenericDemo2 {
public static void main(String[] args) {
//创建学生对象
Student s1=new Student("颤三",20);
Student s2=new Student("李四",30);
//创建List集合对象
List <Student> lt=new ArrayList<Student>();
//添加元素
lt.add(s1);
lt.add(s2);
//方式 1 toArray()
Object ob[]=lt.toArray();
for(int x=0;x<ob.length;x++) {
Student s=(Student)ob[x];
System.out.println(s.getName()+"--"+s.getAge());
}
System.out.println("---------------------------------");
//方式二
//获取Collection迭代器
Iterator<Student>it=lt.iterator();
while(it.hasNext()) {
Student a=it.next();
System.out.println(a.getName()+"--"+a.getAge());
}
System.out.println("---------------------------------");
//方式三
//获取列表迭代器
ListIterator <Student>list=lt.listIterator();
while(list.hasNext()) {
Student a2=list.next();
System.out.println(a2.getName()+"--"+a2.getAge());
}
System.out.println("---------------------------------");
//方式4 普通for循环
for(int x=0;x<lt.size();x++) {
Student a3=lt.get(x);
System.out.println(a3.getName()+"--"+a3.getAge());
}
//JDK5很多新的性:增强for,静态导入(导入的方法级别,该方法是静态),可变参数,自动拆装箱
for (Student s10 :lt ) {
System.out.println(s10.getName()+" "+s10.getAge());
}
}
}