list循环改变元素的值写法

    for循环可以修改对象内容  , 但是重新赋值无效 , 另外不可以删除和新增元素
    集合或者数组中 , 存放的是对象的引用 , 而不是对本身 , 对于字符串来说 , 存的就是这个字符串, 而不是这个字符串对象 
    如果你在循环中修改字符串, 其实是对字符串重新赋值 , 但是原本字符串的那个引用, 是没有发生改变的 , 所以修改没有用
    如果你放的是一个对象 , 比如Person, 那么你可以在循环中对person这个对象中的属性进行修改 , 比如修改他的 age属性  , 但是不能重新赋值,  也就是不能用 p = new Person(); 代码不会报错 , 但是这个操作不会影响集合中这个元素的内容
    另外 ,增强for循环其他地方都和普通for循环一样, 唯一的不同是 , 他不能获得集合的下标 , 也就是说不能对指定位置的元素进行处理 , 只能根据元素本身的属性进行一系列判断

上面这段文本是网上获取,忘记网址。

增强for注意

    public static void testForeach() {
        List<Person> pList = new ArrayList<Person>();
        for (int i = 1; i <= 5; i++) {
            Person person = new Person();
            person.setId(""+i);
            person.setName("zs" + i);

            pList.add(person);
        }

        //1.数据库查询出列表
//      List<Person> pList = personDao.getList();
        //2. 修改值
        for (Person person : pList) {
            person.setName("lisi");
        }
        //3. 重新插入
//      personDao.batchInsert(pList);


        for (Person person : pList) {
            System.out.println("===》" + person);
        }
    }

List的set方法


    public static void testSetFunction() {
        List<Person> pList = new ArrayList<Person>();
        for (int i = 1; i <= 5; i++) {
            Person person = new Person();
            person.setId(""+i);
            person.setName("zs" + i);

            pList.add(person);
        }
        //打印值
        for (Person person : pList) {
            System.out.println(person);
        }
        //2. 修改后的值
        for (int i = 0; i < pList.size(); i++) {
            Person person = pList.get(i);
            person.setName("lisi");

            pList.set(i, person);
        }
        for (Person person : pList) {
            System.out.println("===》" + person);
        }
    }

新增一个List

public static void testNewList() {
        List<Person> pList = new ArrayList<Person>();
        for (int i = 1; i <= 5; i++) {
            Person person = new Person();
            person.setId(""+i);
            person.setName("zs" + i);

            pList.add(person);
        }
        //打印值
        for (Person person : pList) {
            System.out.println(person);
        }
        //2. 修改后的值
        List<Person> newList = new ArrayList<Person>();
        for (Person person : pList) {
            Person p = new Person();
            p.setName("lisi");
            p.setId(person.getId());


            newList.add(p);
        }
        for (Person person : newList) {
            System.out.println("===》" + person);
        }
    }

Iterator迭代器


    public static void testIterator() {
        List<Person> pList = new ArrayList<Person>();
        for (int i = 1; i <= 5; i++) {
            Person person = new Person();
            person.setId(""+i);
            person.setName("zs" + i);

            pList.add(person);
        }
        //打印值
        for (Person person : pList) {
            System.out.println(person);
        }
        //2. 修改后的值
        Iterator<Person> it = pList.iterator();
        while (it.hasNext()) 
        {
           Person p = it.next();
           p.setName("lisi");
        }

        Iterator<Person> it2 = pList.iterator();
        while (it.hasNext()) 
        {
            Person person = it.next();
            System.out.println("===》" + person);
        }
    }

CopyOnWriteArrayList

    public static void testCopyOnWriteArrayList() {
        List<Person> pList = new CopyOnWriteArrayList<Person>();
        for (int i = 1; i <= 5; i++) {
            Person person = new Person();
            person.setId(""+i);
            person.setName("zs" + i);

            pList.add(person);
        }
        //打印值
        for (Person person : pList) {
            System.out.println(person);
        }
        //2. 修改后的值
        for (Person person : pList) {
            person.setName("lisi");
        }


        //打印
        for (Person person : pList) {
            System.out.println("===》" + person);
        }
    }
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值