Java에서 개체를 그룹화하는 쉬운 방법

이 예에서는 컬렉션을 값으로 포함하는 지도 개체에서 그룹화를 사용하기 쉽게 만들 것입니다.
예를 들어, MapIntegers 가 있고, 그 값은 ArrayListStrings 입니다.

Grouper<Integer, String> grouper = new ArrayListGrouper<>();
        grouper.put(1, "a");
        grouper.put(1, "b");
        grouper.put(1, "c");
        grouper.put(1, "c");
        grouper.put(2, "c");


출력은 다음과 같습니다.

{1=[a, b, c, c], 2=[c]}


우리가 해야 할 일은 그룹화 전략을 정의하는 것입니다. 예를 들어 이미 정의된 ArrayListGrouper 클래스는 전략으로 ArrayList를 사용합니다.
우리는 항상 다른 Grouper를 사용할 새 Grouper를 정의할 수 있습니다.
GroupingStrateg .

요소가 고유하도록 ArrayListHashSet 로 변경해 보겠습니다.

public class HashSetGrouper<K, V> extends Grouper<K, V> {

    public HashSetGrouper() {
        super(HashSet::new);
    }
}


다음과 같이 테스트하십시오.

@Test
    public void testHashSetGrouper() {
        Grouper<Integer, String> grouper = new HashSetGrouper<>();
        grouper.put(1, "a");
        grouper.put(1, "b");
        grouper.put(1, "c");
        grouper.put(1, "c");
        grouper.put(2, "c");
        System.out.println(grouper);

    }


출력은 다음과 같습니다.

{1=[a, b, c], 2=[c]}

1 키에는 이제 "c" 값이 반복되지 않는 세트가 있습니다.

코드는 Github에서 호스팅됩니다: https://github.com/BelmoMusta/java-Grouper
귀하의 의견을 환영합니다.

좋은 웹페이지 즐겨찾기