자바에서 List를 사용하다가 List가 가진 요소들중 중복된 것을 제거하고 유일한 값들만 가지고 있는 List를 만들어야 할 필요가 있었습니다. 루프를 돌면서 유니크한 값을 찾아서 새로운 배열을 만들자니 약간 귀찮았는데 해쉬셋을 이용해서 간단하게 유일한 요소들만 가진 List로 만들 수 있더군요.
중복되는 요소들을 가질 리스트를 HashSet으로만든뒤에 다시 List로 변환을 하면 중복요소가 사라진 유일한 요소들만 가진 리스트를 만들 수 있습니다.
덧) 저의 경우에는 필요치 않았지만 HashSet을 사용할 경우 순서가 지켜지지 않을 수 있다는 얘기가 있었습니다.
덧2) 김은석님이 List의 contains와의 성능비교를 공유해 주셨습니다.
public OVERLAP _OVERLAP = (Queue<List<int>> MC) =>
{
HashSet<List<int>> overlap = new HashSet<List<int>>(MC);
List<List<int>> _cs = new List<List<int>>(overlap);
for(int num =0; num < _cs.Count; num++)
{
for (int i = 0; i < 5; i++)
Console.Write("{0} ", _cs[i][num]);
Console.WriteLine();
}
};
Queue<List<int>> MC 안에 9500개의 큐가 있는데 한큐 마다 5개의 배열이 있습니다.
거기에 큐마다 중복된 데이터가 많아서 제거 할라고 저런 코드를 썻는데 잘 안됩니다.
어떻게 해야하나요?
선교사 식인종 알고리즘 으로 인한 가지치기 중입니다.