我的目标是将值一起从不同列表中的值连接成一个字符串。我的字符串看起来像这样:'0 0 0'。第一个0表示'秒',第二个0表示'分钟',第三个0表示'小时'。我创建了三个不同的列表来包含值。第一个是第二个列表,第二个是分钟列表,第三个是小时列表。在创建所有三个列表后,我将这三个列表放入一个主列表中。我正在尝试遍历主列表,然后将值分配到这些位置,以根据这三个列表的大小创建字符串。这三个列表大小是相同的。
import java.util.*;
public class multipleList{
public static void main(String[] args){
ArrayList<String> seconds=new ArrayList<String>();
ArrayList<String> minutes=new ArrayList<String>();
ArrayList<String> hours=new ArrayList<String>();
ArrayList<String> masterList=new ArrayList<String>();
seconds.add("10");
seconds.add("20");
seconds.add("30");
minutes.add("15");
minutes.add("16");
minutes.add("17");
hours.add("2");
hours.add("3");
hours.add("4");
masterList.addAll(seconds);
masterList.addAll(minutes);
masterList.addAll(hours);
for(String subList:masterList){
System.out.println(subList);
}
}
控制台打印的输出是10,20,30,15,16,17,2,3,4。现在我的问题是如何在循环通过主列表(如第一个)后将这些值分配到字符串中string为'10 15 2'(格式为'second minute hour'),第二个字符串为'20 15 3',第三个字符串为'30 17 4'。
答案 0 :(得分:2)
替换此代码段
masterList.addAll(seconds);
masterList.addAll(minutes);
masterList.addAll(hours);
使用此代码段: -
// Assuming the size of all the 3 lists(hr, min, sec) are the same
for(int i=0;i<hours.size();i++){
String finalStr = hours.get(i) + " " + minutes.get(i) + " " + seconds.get(i);
masterList.add(finalStr);
}
答案 1 :(得分:0)
这样的东西?
StringBuilder b = new StringBuilder();
for (int j = 0; j < seconds.size(); ++j) {
for (int i = j; i < masterList.size(); i += seconds.size()) {
b.append(masterList.get(i)).append(" ");
}
b.append('\n');
}
System.out.println(b);
第一个循环将masterList分成seconds.size()
个组。我们使用嵌套(内部)循环遍历每个组。单个组的元素彼此相距seconds.size()
个距离,因此我们按seconds.size()
递增。
警告:三个列表必须大小相同,并且masterList的大小应为
seconds.size() * 3
。