下标遍历
1 用循环变量控制集合下标
下面展示一些 内联代码片
。
for(int i=0;i<集合名.size();i++){
//通过下标获取每一个集合元素:get()
Object o =List.get(i);
//通过o变量对集合元素进行操作
}
forEach遍历
for(数据类型 变量名:集合名){
// 直接通过变量名操作集合元素
}
需要注意的是()中的数据包取决于集合元素的类型(泛型)
迭代器(Iterator)遍历 (forEcah底层原理实现)
Iterator <>it= List.iterator();
while (it.hasNext()){
// 通过it.next() 方法获取迭代器中元素
}
- 获取 迭代器对象
Iterator<集合元素数据类型> it = list.iterator();
注意:首次获迭代器会在所有元素的最左端产生一个指针(游标) - 常用的方法:
boolean hasNext():判断迭代中游标右侧还有没有数据,有-true;没有结果为false。操作 hasNext()方法不会导致游标的移动。
next():获取迭代器中写一个元素。为了防止出现异常java.util.NoSuchElementException(没可取元素异常),在调用next方法之前,需要利用hashNext方法有没有可取元素进行判断。
示例代码
public class TextArrayList{
public static void main(String[]args){
// 创建集合对象
ArrayList list=new ArrayList();
// 存贮元素
list.add("薯片");
list.add(" 可乐");
System.out.println("获取集合个数"+list.size());
System.out.println(" 获取下标1对应集合"+list.get(1));
// 下标遍历
for(int i=0;i<list.size;i++){
Systeam.out.println("" 下标"+i+“存储的元素”+list.get(i));
}
}
}
foreach 遍历
创建一个Student 类 私有属性 (String)姓名 (int)年龄 (doublean)分数
public class TestSort {
public static void main(String[] args) {
ArrayList<Student> list = newArrayList<Student>();
list.add(new Student("zhangsan",15,98.0));
list.add(new Student("liu66",18,98).0);
list.add(new Student("王麻子",16,100.0));
// forEach 遍历
for(Student sd:list){
Systeam.out.println(sd);
}
}
}