我正在寻找的是一个二维数组的字符串。同一行中的字符串应该是唯一的,但允许行重复。
我正在使用一个列表,其中每一行都是一组:
List<Set<String>> bridges = new ArrayList<Set<String>>();
我有一个返回一组字符串的方法:
Set<String> getBridges(){
Set<String> temp = new HashSet<String>();
// Add some data to temp
temp.add("test1");
temp.add("test2");
temp.add("test3");
return temp;
}
现在在main方法中,我将调用getBridges()来填充我的列表:
List<Set<String>> bridges = new ArrayList<Set<String>>();
Set<String> tempBridge = new HashSet<String>();
for(int j=0;j<5;j++){
for(int k=0;k<8;k++){
// I call the method and store the set in a temporary storage
tempBridge = getBridges();
// I add the the set to the list of sets
bridges.add(tempBridge);
// I expect to have the list contains only 5 rows, each row with the size of the set returned from the method
System.out.println(bridges.size());
}
}
为什么我将列表作为大小为5 * 8的一维数组?如何解决这个问题?
答案 0 :(得分:4)
您的for
循环看起来组织不正确。您应该每行只添加bridges
一次,而现在您每次都通过内部 for
循环添加它,该循环运行5 * 8次。
答案 1 :(得分:0)
您需要修复循环:
List<Set<String>> bridges = new ArrayList<Set<String>>();
Set<String> tempBridge = new HashSet<String>();
for(int j=0;j<5;j++){
tempBridge = getBridges();
bridges.add(tempBridge);
System.out.println(bridges.size());
}
Set<String> getBridges(){
Set<String> temp = new HashSet<String>();
for(int k=0;k<8;k++){
// Add some data to temp
temp.add("test" + Integer.toString(k));
}
return temp;
}