0

Java では、リストから subList を取得したいと考えています。リスト内の値に基づいてサブリストが必要なため、Javaのサブリストを使用できません。

DTO オブジェクトのリストがあります。DTOは

MyClass myClass;
int hit;

そして MyClass は

String webName;
...

同じ webName を持つサブリストを取得したい ( webName の合計ヒットを追加し、同じ webName を持つ重複した DTO オブジェクトを削除する必要がある)

4

2 に答える 2

1

あなたの質問から判断すると、あなたが今持っているものは

List<MyDTO> dtos;

そして、あなたはに到達したいです

List<List<MyDTO>> sublists;

したがって、dto を反復処理し、マップ内の正しいエントリを見つけて、ヒットをコンテナーに追加するだけです。マップにより、Web 名ごとに 1 つのエントリしかないことが確認されます。

Map<String, List<MyDTO>> hitmap = new HashMap<String, List<MyDTO>>();

for (MyDTO dto: dtos){
  String webname = dto.getMyClass().getWebName();
  List<MyDTO> list = hitmap.get(webname);
  if (list==null){
    list = new ArrayList<MyDTO>();
    hitmap.put(webname, list);
  }
  list.add(dto);
}

次に、本当に一連のサブリストが必要な場合は、値から取得します

List<List<MyDTO>> sublists = new ArrayList<List<MyDTO>>(hitmap.values());
于 2011-12-26T12:19:33.207 に答える
0

どうですか?

同名のDTOのリストを保持する

Map<String, List<YourDTO> > mapNameToDtos

またはさらに良い

同じ名前のカウントだけを保持する

Map<String, Integer > mapNameToCount
于 2011-12-26T12:12:42.487 に答える