[英]Print values from BitSet with for loop
我想用一個for循環(或另一種形式的迭代)打印我當前擁有的內容,並且僅打印一個標志聲明,但是如果不為每個定義的值使用'flag#',就無法弄清楚。 應該有5位-我有-但是只有一個標志可以迭代。 我正在使用除數與模(%)對每個標志進行排序。 下面的代碼。
import java.util.*;
public class BitSet {
public static void main(String args[]) {
BitSet flags1 = new BitSet(5);
BitSet flags2 = new BitSet(5);
BitSet flags3 = new BitSet(5);
BitSet flags4 = new BitSet(5);
BitSet flags5 = new BitSet(5);
for (int i = 0; i < 6; i++) {
if((i % 1) == 0) flags1.set(i);
if((i % 2) == 0) flags2.set(i);
if((i % 3) == 0) flags3.set(i);
if((i % 4) == 0) flags4.set(i);
if((i % 5) == 0) flags5.set(i);
}
System.out.println("Numbers divisible by 1: " + flags1);
System.out.println("Numbers divisible by 2: " + flags2);
System.out.println("Numbers divisible by 3: " + flags3);
System.out.println("Numbers divisible by 4: " + flags4);
System.out.println("Numbers divisible by 5: " + flags5);
}
}
使用數組(或ArrayList<BitSet>
)存儲位集,然后在數組上進行迭代。
import java.util.*;
public class BitSet {
public static void main(String args[]) {
BitSet[] flags = new BitSet[5];
for (int i = 0; i < flags.length; i++) {
flags[i] = new BitSet(5);
}
for (int i = 1; i < 6; i++) {
for (int j = 1; j <= 5; j++) {
if (i % j == 0) {
flags[j - 1].set(i);
}
}
}
for (int i = 0; i < flags.length; i++) {
System.out.printf("Numbers divisible by %d: %s%n", i + 1, flags[i]);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.