1

2 つの異なるListオブジェクトがあり、2 つのオブジェクトの共通の属性に基づいて 2 つのオブジェクトのマージされたリストを取得したいのですが、新しいリストには共通のオブジェクトのみが含まれている必要があります。両方のオブジェクトのサイズも異なります。私の最初のオブジェクト:

ObjectA(distance,remainingtime,msg1_received_time)
ObjectB(remainingtime,msg1_decoding_time,phase)

そして、両方のケースで残り時間だけが同じである値を持ちたいと思いListます.誰かが私を案内してくれますか?

4

1 に答える 1

1

time 制約がない場合は、常に一方のリストの要素を反復処理してから、それらが他方のリストの要素に存在するかどうかを確認できます。大きさ O(n^2) のアルゴリズム:

for(ObjectA el : listOfA)
{
    for(ObjectB in : listOfB)
    {
        if(el.remainingtime == in.remainingtime)
        {
            resultList.add(el);
            break;
        }
    }
}

もう少し効率的なものを探している場合はSet<T>、 を使用してみてください。これにより、アクセスがはるかに高速になります。

于 2013-06-20T11:59:29.137 に答える