2

私は誰かが私がJavaで抱えている小さな問題で私を助けてくれることを望んでいました。ListとArrayListがあり、それぞれの最初の要素が隣り合って印刷されたファイルに出力したいと思います。これが私がこれまでに持っているものです:

List<String> uniqueList = new ArrayList<String>(dupMap.values());
for(String unique:uniqueList){
   out.write(unique + "\r");
}
ArrayList<Integer>subtr=new ArrayList<Integer>();
out.write("The number: " + subtr + "\r");

これにより、次の出力が得られます。

A
B
C
D
E
F
The number: [1, 2, 3, 4, 5, 6]

しかし、私はむしろそれがこのようになりたいです:

A The number: 1
B The number: 2

...等。

そのような出力フォーマットを取得する方法をどこから始めればよいのかよくわかりません。両方の値のセットを配列に入れようとしましたが、混乱してしまいました...それが私がここにたどり着いた方法です。どんな助けでも大歓迎です。

4

5 に答える 5

6

単にこれを行います:

String br = System.getProperty("line.separator");
for (int i = 0, n = Math.min(uniqueList.size(), subtr.size()); i < n; i++)
    out.write(uniqueList.get(i) + " The number: " + subtr.get(i) + br);
于 2012-08-28T19:04:28.720 に答える
1
List<String> uniqueList = new ArrayList<String>(dupMap.values());
ArrayList<Integer>subtr=new ArrayList<Integer>();

for (int i = 0; i < uniqueList.size(); i++){
   out.write(uniqueList.get(i) + "\r");
   out.write("The number: " + subtr.get(i) + "\n");
}

:これは、両方のリストに同じ数の要素があることを前提としています。そうでない場合は、を繰り返しますMath.min(uniqueList.size(), subtr.size())

于 2012-08-28T19:04:03.330 に答える
1

これはそれを行う必要があります:

int maxLength = Math.min(uniqueList.size(), subtr.size());
for(int i = 0; i < maxLength; i++)
{
    out.print(uniqueList.get(i) + " The number: " + subtr.get(i) + "\r");
}
于 2012-08-28T19:04:58.533 に答える
1

このようなもの:

List<String> uniqueList = new ArrayList<String>(dupMap.values());
ArrayList<Integer> subtr = new ArrayList<Integer>();
int length = Math.min(uniqueList.size(), substr.size());
for (int i = 0; i < length; i++) {
   out.write(uniqueList.get(i) + " The number: " + substr.get(i) + "\r");
}
于 2012-08-28T19:05:20.950 に答える
1

効率的な方法は、キーと値としてHashMapを維持することです。次に、マップを繰り返し処理します。uniqueListsubtr

Map<String,Integer> map = new HashMap<String,Integer>();

for (int i = 0; i < uniqueList.size(); i++){
    map.put(key, subtr.get(i));
}
for (Map.Entry<String, Integer> entry : map.entrySet()) {
    out.println(entry.getKey() + " The Number : " + entry.getValue());
}
于 2012-08-28T19:24:32.043 に答える