2017-04-30 14 views
0

私はクラスStudentを持っています。 また、生徒Aと生徒Bの2つの配列リストがあります。オブジェクトの2つのArrayListを比較する

生徒Aは、Maria、Alex、Lora、Vlad、Lauren、Catherineです。マリア、アレックス

生徒A保存され、適切なIDと名前を持っています

学生Bはからいくつかの学生があります。 しかし、生徒Bは名前とハードコードされたIDだけを保存しています。

私は、これら二つのリストを分離し、今、次の操作を行いたい:

マリアのフォームの配列Aには学生証があれば:2427

マリア・アレイBからは、同じ学生証を受ける必要があります。

あなたは私にそれを手伝ってもらえますか?

//array lists of students a and b 
public void common(){ 

    ArrayList<ArrayList<Student>> lists = new ArrayList<ArrayList<Student>>(); 
    lists.add(a); 
    lists.add(b); 

    System.out.println(getCommonElements(lists)); 
    for (int i = 0; i < lists.size(); i++) { 
     aa = lists.get(0); 
     bb = lists.get(1); 

    } 
    System.out.println(aa); 
    System.out.println(bb); 
} 


public static <T> Set<T> getCommonElements(Collection<? extends Collection<T>> collections) { 

    Set<T> common = new LinkedHashSet<T>(); 
    if (!collections.isEmpty()) { 
     Iterator<? extends Collection<T>> iterator = collections.iterator(); 
     common.addAll(iterator.next()); 
     while (iterator.hasNext()) { 
      common.retainAll(iterator.next()); 
     } 
    } 
    return common; 
} 

ありがとうございます! これはなぜうまくいかないのですか?

for (int i = 0; i < a.size(); i++) { 
    for (int j = 0; j < b.size(); j++) { 

     if(a.get(i).getName().equals(b.get(j).getName())){ 
       //does not go there at all 
    } 
    } 
} 
+2

あなたの宿題が主にダンプされているように聞こえるし、教師があなたに記入することを期待する「テンプレート」コードがあります。あなたは、私たちが具体的な質問をするのを手伝っているのです。 – GhostCat

+0

AからBまでの対応する名前に対応するIDを入力しようとしていますか? – vijayraj34

+0

はい。問題は:私は既にAのすべての適切なIDを持っています。これらのIDを対応する名前でB ArrayListに設定する必要があります。 – Julia

答えて

0

あなたの反復は、あなたがしたいことをしていません。インデックス 'i'のAの要素とインデックス 'j'のBの要素の代わりに、両方の配列のインデックス 'i'の要素を繰り返し比較しています。

あなたが比較した各生徒の名前を印刷すると、それはあなたには明らかです。

+0

はい、申し訳ありません。私は自分の投稿を編集しました。私は実際に私とjを比較していました。だから、仕事をしたくないし、理由も分かりません... – Julia

関連する問題