ノードの状態を収集するために、大きさの異なる3つの配列がありますが、それぞれを作成する代わりに1つのループですべてを繰り返していきたいと思います。私は配列を整数として命名し、while/forループとインクリメントを行う例を見てきましたが、現在の配列名を保持するメソッドを見つけたいと思います。ここまで私がこれまで持っていたことがあります。異なる配列リストをループする
EDIT:私はどのような状態...つまり
オンライン持っているもののノード容易に区別されるように区切るすべてのリストを維持したいと思います - ノード1、ノード2 |オフライン - node3、node4 |不明 - 私が正しく理解していればNODE5、node6
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);
}
}
あなたは配列を持っていません。反復する前にそれらを連結してみませんか?それはかなり安い操作です。さもなければ、最大のリストを反復しながら、境界のためのいくつかの無駄な論理チェックが必要です。 –
「すべて」の4番目のリストを保持し、それにすべてのノードを追加するだけではどうですか? – Stewart
申し訳ありませんすべて - 私はもっと明確にすべきです...私はそれらを分けておきたいと思います。Online、Offline、Unknownはそれぞれ独自のリストに入っていますので、どのノードがどのステータスになっているかを簡単に分けることができます。ここに表示されていないのは、ノードステータスが約30秒ごとに更新されるということです。 – Jon