2012-02-22 9 views
1

私はそれぞれ異なるクラスのリスト、例えばAとBを持っています。 C.Javaで2つのリストを結合する

でこれらのクラスの定義私はフィールド1以上のAとBに結合操作を(データベースに似て参加)、実行し、結果を移入したいされ

class A { 
int field1; 
int field2; 
} 

class B { 
int field1; 
int field3; 
} 

class C { 
int field1; 
int field2; 
int field3; 
} 

follows-として

私は反復処理することができますリストとそれを行う。しかし、ちょうど同様のことをするライブラリメソッドがあるかどうかチェックしたいと思っていました。

+0

私はそれを自分で使ったことはありませんので、答えとして投稿するだけでは不十分です。私は、LINQが、リレーショナルデータベースを照会するのと同じ方法で、コレクションを照会するAPIを提供していると聞いています。私は、Java用のLINQの実装(またはLINQのようなライブラリ)があることを知っています、多分それらを見てください。 – ARRG

答えて

0

これらが唯一のフィールドの場合は、手動で繰り返してください。

大きなデータセットの場合は、データをコレクションとapply a Cartesian Product algorithmにグループ化します。 apacheのコレクションで、ライブラリ内のメソッドを使用して、たぶん

+0

実際、各クラスには多くのフィールドがあります。単純にするために、私はこの例を挙げました。 – Teja

+0

したがって、AとBにはおそらくフィールドの値をCollectionとして返すメソッドが含まれているはずです。 Cは、引数として2つのコレクションを取得し、それらのデカルト積を計算し、それ自身のフィールドに値を設定するメソッドを持つ必要があります。 –

-1

import org.apache.commons.collections.ListUtils;  

List<?> newListC = ListUtils.intersection(list1, list2); 

はそれがお役に立てば幸いです。

+1

著者はフィールドでグループ化するように求められ、要素のリストの交差を見つけることはできません。 – bezmax

0

任意のクラスのオブジェクトをリストに追加できます(リストが汎用指定されていない場合)。しかし、各オブジェクトをリストから取り戻すと、そのオブジェクトがどのタイプであるのかわからなくなります。

関連する問題