当前位置: 首页 > 知识库问答 >
问题:

在不同数组列表中循环

薛弘济
2023-03-14

联机-节点1,节点2离线-节点3,节点4未知-节点5,节点6

private String nodeStatus() {

    List<Node> onlineNodes = new ArrayList<Node>();
    List<Node> offlineNodes = new ArrayList<Node>();
    List<Node> unknownNodes = new ArrayList<Node>();

    for(Node n : getNodes()){

        if (n.isRunning() == RunningType.ONLINE) {
            onlineNodes.add(n);
        }

        if (n.isRunning() == RunningType.OFFLINE) {
            offlineNodes.add(n);
        }

        if (n.isRunning() == RunningType.UNKNOWN) {
            unknownNodes.add(n);
        }
    }

    for (Node element : <online,offline,unknown>) {
        System.out.println(element);
    }

}

共有1个答案

邵星光
2023-03-14

如果我理解正确的话,您想要的是使用第4个列表在1for-loopW/O上迭代3个列表,实现此目的的方法是:

import java.util.*;

public class MultipleArraysLooping {
    public static void main (String args[]) {
        List <String> list1 = new ArrayList <String>();
        List <String> list2 = new ArrayList <String>();
        List <String> list3 = new ArrayList <String>();
        fillLists(list1, list2, list3);
        iterateLists(list1, list2, list3);
    }

    public static void fillLists(List <String> list1,
        List <String> list2, List <String> list3) {
        list1.add("item1 on list1");
        list1.add("item2 on list1");
        list1.add("item3 on list1");

        list2.add("item1 on list2");
        list2.add("item2 on list2");
        list2.add("item3 on list2");
        list2.add("item4 on list2");
        list2.add("item5 on list2");

        list3.add("item1 on list3");
        list3.add("item2 on list3");
    }

    public static void iterateLists(List <String> list1,
        List <String> list2, List <String> list3) {
        int size = 0;
        if (list1.size() > list2.size()) {
            if (list1.size() > list3.size()) {
                size = list1.size();
            } else {
                size = list3.size();
            }
        } else {
            if (list2.size() > list3.size()) {
                size = list2.size();
            } else {
                size = list3.size();
            }
        }

        for (int i = 0; i < size; i++) {
            if (i < list1.size()) {
                System.out.println(list1.get(i));
            }
            if (i < list2.size()) {
                System.out.println(list2.get(i));
            }
            if (i < list3.size()) {
                System.out.println(list3.get(i));
            }
        }
    }
}

上面的代码给出的输出是:

item1 on list1
item1 on list2
item1 on list3
item2 on list1
item2 on list2
item2 on list3
item3 on list1
item3 on list2
item4 on list2
item5 on list2

如您所见,它交替迭代每个列表

 类似资料:
  • 问题:我能否使用Java流API(即一行)实现方法。需要变量来定义字符串的长度;我尝试为每个循环,但它不工作。我需要一个循环的范围。 我的尝试:

  • 我有一个arraylist的arraylist,每个arraylist都有相同的点,例如,当您打印时,这是输出 在打印之前,我要删除其x值不等于数组列表索引的所有点 所以输出应该是 我尝试使用remove方法和for循环以及其他方法,但都不起作用。 有人能帮忙吗?

  • 我试图设计一个购物车,读取美元数额,然后打印这些值回来。然而,我的时循环不会终止,我的数组列表存储了错误的值。 结果应该是这样的: 但这是我的输出: while 循环不会终止,而是返回到第一个提示:“请输入商品价格,或 -1 退出:” 程序不断将“-1”计为数组列表的一部分。“-1”值应该充当“否”并终止向 arrayList 添加更多元素,但在我的代码中,它被吸收到 arrayList 中。我尝

  • 我试着解决这个数组列表问题,但没有成功 无论如何,在while循环中,我必须向ArrayList添加新的字符串项。 如果有一个重复的项目,应该有一个消息说重复的项目。 While循环将按单词结束中断

  • 我想以小批量遍历ArrayList。 例如,如果ArrayList大小为75,批大小为10,我希望它处理记录0-10,然后10-20,然后20-30,依此类推。 我试过这个,但没有成功: