0

私の目標は、値をすべて連結して、別のリストの値から 1 つの文字列にすることです。私の文字列は「0 0 0」のようになります。最初の 0 は「秒」、2 番目の 0 は「分」、3 番目の 0 は「時」を表します。値を含む 3 つの異なるリストを作成しました。1 つ目は 2 つ目のリスト、2 つ目は分リスト、3 つ目は時間リストです。3 つのリストをすべて作成したら、それら 3 つのリストを 1 つのマスター リストにまとめます。マスターリストをループしてから、それらの位置に値を割り当てて、これらの 3 つのリストのサイズに基づいて文字列を作成しようとしています。これら 3 つのリスト サイズは同じです。

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です。今私の問題は、最初の文字列などのマスターリストをループした後、これらの値を文字列に割り当てる方法です。 '10 15 2' (形式は 'second minutes hour')、2 番目の文字列は '20 15 3' になり、3 番目の文字列は '30 17 4' になります。

4

2 に答える 2

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);
}
于 2013-03-29T05:22:34.433 に答える
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()グループに分割します。ネストされた (内側の) ループで各グループをループします。1 つのグループの要素はseconds.size()互いに離れているため、 だけインクリメントしseconds.size()ます。

警告: 3 つのリストは同じサイズである必要があり、masterList は同じサイズである必要があります

seconds.size() * 3.

于 2013-03-29T05:21:38.783 に答える