Java,对象列表,循环更改值

标签 java list loops object

我的程序有 4 个具有不同值的 Computer 对象,分别是 MakeModelProductnumber数量,和货架号。 它们来自 Computer 类,该类扩展自 Product 类。我将对象添加到对象列表中,现在我需要从每个对象中获取 Shelfnumber(对象中的最后一个值),并根据这些值向它们添加不同的数量。

我的问题是,是否有任何方法可以循环遍历每个对象。当前循环只对第一个计算机对象 t1 执行此操作。现在我需要它在同一循环中获取 t2t3t4Shelfnumber

即,获取 t1 的 Shelfnumber -> 检查值是什么 -> 添加到它 -> 获取 t2Shelfnumber并做同样的事情。

public class Main {

    public void computers() {
        ArrayList<Object> computers = new ArrayList<Object>();
        Computer t1 = new Computer("Razer", "Blade 15", "65732", 3, 12); computers.add(t1);
        Computer t2 = new Computer("Apple", "MacBook Pro", "8732", 21, 15); computers.add(t2);
        Computer t3 = new Computer("Asus", "Aspire 5", "7532", 5, 2); computers.add(t3);
        Computer t4 = new Computer("Lenovo", "Legion 5", "3437", 2, 150); computers.add(t4);
        int shelfNumber = 0;

        for (int i = 0; i < computers.size(); i++) {
            shelfNumber = t1.getShelfnumber();
            if (shelfNumber < 10) {
                shelfNumber = shelfNumber + 10;
            } else if (shelfNumber > 10 && shelfNumber < 100) {
                shelfNumber = shelfNumber + 30;
            } else {
                shelfNumber = shelfNumber + 500;
            }
        }
        System.out.println(shelfNumber);

        System.out.println(t1.toString());
        System.out.println(t2.toString());
        System.out.println(t3.toString());
        System.out.println(t4.toString());
    }

    public static void main(String[] args) {
        Main ohj = new Main();
        ohj.computers();
    }
}

最佳答案

您需要引用列表中的对象,而不是 t1直接:

for (Computer t : computers) {
    shelfNumber = t.getShelfnumber();
    if (shelfNumber < 10) {
        shelfNumber = shelfNumber + 10;
    } else if (shelfNumber > 10 && shelfNumber < 100) {
        shelfNumber = shelfNumber + 30;
    } else {
        shelfNumber = shelfNumber + 500;
    }
}

编辑:
如评论中所述,您应该定义 computers作为 List<Computer> , 不是 List<Object> .

关于Java,对象列表,循环更改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66135905/

相关文章:

python - 在python中复制一个列表

java - 如何用java做oracle TNSPING?

java - 如何使用DateTimeFormatter统一日期格式

R:在向量列表中查找唯一向量

c - 用C语言制作金字塔

python - 如何从 Raw_Input 字符串值创建循环

javascript - 如何正确访问像这样的javascript "dictionary"

java - Java中多参数重载方法的选择规则

用于 Java 的 Javascript 解析器

python - 在查找成员资格时,集合比列表快得多