如何在LinkedList中只改变一个值

我想只改变一个值,第二个值(是int),例如+1。怎么做呢?我想在下面的代码中加入循环。

LinkedList<Ter> smList = new LinkedList<Ter>();

    smList.add(new Ter(2,4)); 
    smList.add(new Ter(5,9)); 
    smList.add(new Ter(6,5));  

     Iterator<Ter> iterator=smList.iterator();
     while(iterator.hasNext()){
       System.out.println(iterator.next());
     }

解决方案:

你需要增加每个 Ter 对象,并在迭代的同时将更新后的值设置到对象上。

具体操作如下。

import java.util.Iterator;
import java.util.LinkedList;

class Ter {
    int x, y;

    public Ter(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }

    public int getY() {
        return y;
    }

    public void setY(int y) {
        this.y = y;
    }

    @Override
    public String toString() {
        return "Ter [x=" + x + ", y=" + y + "]";
    }
}

public class Main {
    public static void main(String[] args) {
        LinkedList<Ter> smList = new LinkedList<Ter>();
        smList.add(new Ter(2, 4));
        smList.add(new Ter(5, 9));
        smList.add(new Ter(6, 5));
        Iterator<Ter> iterator = smList.iterator();
        while (iterator.hasNext()) {
            Ter ter = iterator.next();
            ter.setY(ter.getY() + 1);
        }
        System.out.println(smList);
    }
}

输出:

[Ter [x=2, y=5], Ter [x=5, y=10], Ter [x=6, y=6]]

注意:

如果你想使用 for 循环,而不是 while 循环(按照您在评论中的要求),只需将

while (iterator.hasNext())

for (; iterator.hasNext();) 

在我的回答中。

给TA打赏
共{{data.count}}人
人已打赏
未分类

如何在表中分出今天的日期(或查找间隔id天)?

2022-9-8 20:54:38

未分类

Node和npm对前端框架项目的版本锁定?

2022-9-8 20:54:40

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索