黑马程序员技术交流社区

标题: 增强for循环丢失下标不改变值问题 [打印本页]

作者: lc0356    时间: 2016-11-28 11:24
标题: 增强for循环丢失下标不改变值问题
import java.util.Arrays;

public class test1 {
    public static void main(String[] args) {
        Student[] stus = new Student[3];
        stus[0] = new Student("张三", 23);
        stus[1] = new Student("李四", 24);
        stus[2] = new Student("王五", 25);
        delete(stus);
        System.out.println(Arrays.toString(stus));
}

        private static void delete(Student[] stus) {
               
                // 1,增强for循环
                for (Student student : stus) {
                        if ("王五".equals(student.name)) {
                                student = null;
                                break;
                        }
                }
                //,2,普通for循环
                for (int i = 0; i < stus.length; i ++){
                        if ("王五".equals(stus[i].name)) {
                                stus[i] = null;
                                break;
                        }
                }
               
        }
}

class Student {
        public String name;
        public int age;

        public Student(String name, int age) {
                this.name = name;
                this.age = age;
        }

        public String toString() {
                return name;
        }

        public int getAge() {
                return age;
        }

}
作者: lc0356    时间: 2016-11-28 11:26
1中,不会改变stus中的值,而2中,却会改变。,只是为了遍历而遍历。。。。。
作者: 来到精彩世界    时间: 2016-11-28 12:38
1不会改变数组的值,增强for只是用来遍历,不涉及到索引,所以不会改变原数组。

作者: aA772807986    时间: 2016-11-28 16:47
第一不变,第二为null
作者: lieyemu    时间: 2016-11-28 21:38
学习 学习
作者: wei3033    时间: 2016-11-29 16:43
谢谢分享




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2