私はメディアオブジェクトのリストを持っています。グループ化されたリストを並べ替えると、同じグループの要素が次々にJavaの中に現れないようになります。
Class structure of Media is :
Integer id;
String url;
(@ManyToOne)EventEntity event,..etc
Class structure of EventEntity is :
Integer id;
String name;....etc
同じEventEntity
の複数Media
オブジェクトが存在する場合があります。 Media
リストをランダムに並べ替えると、Media
同じEventEntity
のオブジェクトが次々に出現することはありません。例えば
、私の望ましい結果は次のとおりです。
[
{
"abc",event1
},
{
"sdf",event2
},
{
"sdf34",event1
},
{
"sdsdafsdf",event3
},
{
"sdf345f34",event2
}
]
また、私は別のクラス - >Demo.class
作成することができます。
Integer id;
String url;
Integer eventId;
をそしてList<Demo>
を移入し、ランダム化。 出力は次のようになります。
[
{
5,"abc",1
},
{
8,"sdf",2
},
{
1,"sdf34",1
},
{
2,"sdsdafsdf",3
},
{
9,"sdf345f34",2
}
]
一部description.Java 8が好ましく、だけでなく、より効率的である方、旧バージョンであると示唆してください。
更新: List<Media>
は、異なるEventEntity
の要素数が異なる可能性があります。 たとえば、List<Media>
には8つの要素があり、そのうちの5つは同じ要素を持ちます。EventEntity
この場合、ランダムな順序が実行されますが、ルールに従わない可能性がありますが、それに近づく必要があります。
'List'に5つの要素があり、そのうちの4つに同じ 'EventEntity'がある場合はどうなりますか? –
@RobinTopper良い質問ですが、その場合は単純なランダム化が行われます。リストには、異なるイベントに対して同じ数のオブジェクトが含まれる場合と含まれない場合があります。 – SudeepShakya
偶然性と構造的制約がスケールの反対側にあります。これらの矛盾する目標がどれだけ優先順位を持っているかを決めなければなりません。 – Holger