본문 바로가기

개발

java, java script 에서 list, json object 의 중복 제거

728x90

Spring Boot + Vue 로 프로젝트를 진행하면 List 에서 중복된 값들을 제외 하는 경우가 많이 발생하고 한다. 여기 저기서 계속 찾아보다가, 귀찮아서 정리를 해봤다~~~:)

 

1. java 에서 List 의 중복 값 제거

  • For 문을 이용하여 하나씩 비교 하 수도 있지만, HashSet 을 이용하면 간단하게 중복된 object 를 제거 할 수 있다.
List<CustomVO> customVoList = new List<CustomVO>();
customVoList.add(test1);
customVoList.add(test2);
HashSet<CustomVO> customVoListSet = new HashSet<CustomVO>(customVoList);
List<CustomVO> processedList = new List<CustomVO>(customVoListSet);

 

2. javascrips 에서 List 의 중복 제거

  • java 와 비슷하게 set 을 이용하여 제거 할 수 있습니다.
let dupList= ['key', 'value', 'key', 'value'];
let uniqueList = [...new Set(dupList)];

 

  • filter 를 이용하여 set 처럼 쉽게 제거 할 수 있습니다.
let dupList= ['key', 'value', 'key', 'value'];
let x = (dupList) => dupList.filter((v,i) => dupList.indexOf(v) === i)
x(dupList)

 

3. javascript 에서 json List 의 중복 제거

  • Array.from 을 이용하여 json 의 key, value 를 비교하여 중복 값을 제거 할 수 있다.
let dupJson = [ { "key" : "value"}, {"key" : "value"} ]
let uniqueJson = Array.from( dupJson.reduce((m, t) => m.set(t.key, t), new Map()).values());let dupJson = [ { "key" : "value"}, {"key" : "value"} ]

 

  • filter 를 이용해서 중복 제거도 가능하다.
let dupJson = [ { "key" : "value"}, {"key" : "value"} ]
let uniqueJson = dupJson.filter((thing, index) => {
  const _thing = JSON.stringify(thing);
  return index === dupJson.findIndex(obj => {
    return JSON.stringify(obj) === _thing;
  });
});

 

요롷게 잘 써보좌~:)

 

 

 

 

 

  •