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

在不同数组列表中循环

薛弘济
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循环将按单词结束中断

  • 我有两个ArrayLists:一个字符串列表和一个整数列表。例如: 我正在尝试对整数ArrayList进行排序(使用MergeSort)并使字符串ArrayList与整数ArrayList相对应,例如: 我得到的其他答案建议使用映射(int是键,String是值);但是,我不能这样做,因为会有重复的密钥。 我读过关于番石榴的多地图;但是,我不太喜欢将jar文件包含到类路径中。 有没有其他办法可以做