編集:うまくいけばコードをより明確にするために、私はこの質問を書き直しています。
2つの変数を持つクラスPredがあります。
public class Pred {
private String str;
private ArrayList<Keys> keysArr;
public Pred(String s) {
this.str = s;
keysArr = new ArrayList<Keys>;
}
public void setKeysArr(ArrayList<Keys> kArr) {
this.keysArr.addAll(kArr);
}
}
extract()メソッドでは、別の配列をループし、いくつかの変数を取得し、これらを使用して新しいを作成しPreds
ます。
public static Collection<Pred> extractPause(Keys[] kseArr) {
Collection<Pred> predArray = new ArrayList<Pred>();
// create method variables
ArrayList<Keys> keysArray ka = new ArrayList<Keys>();
String s = "";
// loop through an array
for (int i; i < someArray.size(); i++) {
s = "Sam"+i;
ka.add(key1+i);
ka.add(key2+i);
// create new instance of Pred
Pred p = new Pred(s);
p.setKeysArr(ka);
predArray.add(p);
// reset variables (not sure if that's necessary)
s = "";
ka.clear();
}
return predArray;
}
の配列を出力しようとするとPreds
、奇妙な状況に遭遇します。そこでは、の最後の配列値のみを取得してPred
いpredArray
ます。
public void print() {
for (Pred p : predArry)
System.out.println(p.str+" "+p.get(p.keysArr.size()-1).getKeys());
}
出力:
Sam1 key12 key2
Sam2 key12 key22
する必要があります:
Sam1 key11 key21
Sam2 key12 key22