List에서 중복요소 제거한 List로 만들기
자바에서 List를 사용하다가 List가 가진 요소들중 중복된 것을 제거하고 유일한 값들만 가지고 있는 List를 만들어야 할 필요가 있었습니다. 루프를 돌면서 유니크한 값을 찾아서 새로운 배열을 만들자니 약간 귀찮았는데 해쉬셋을 이용해서 간단하게 유일한 요소들만 가진 List로 만들 수 있더군요.
1 2 3 4 5 6 7 8 9 10 11 |
|
중복되는 요소들을 가질 리스트를 HashSet으로만든뒤에 다시 List로 변환을 하면 중복요소가 사라진 유일한 요소들만 가진 리스트를 만들 수 있습니다.
덧) 저의 경우에는 필요치 않았지만 HashSet을 사용할 경우 순서가 지켜지지 않을 수 있다는 얘기가 있었습니다.
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개의 배열이 있습니다. 거기에 큐마다 중복된 데이터가 많아서 제거 할라고 저런 코드를 썻는데 잘 안됩니다. 어떻게 해야하나요? 선교사 식인종 알고리즘 으로 인한 가지치기 중입니다.