Array remove duplicate elements

前端 未结 12 1529
陌清茗
陌清茗 2020-11-27 16:17

I have an unsorted array, what is the best method to remove all the duplicates of an element if present?

e.g:

a[1,5,2,6,8,9,1,1,10,3,2,4,1,3,11,3]
         


        
12条回答
  •  情歌与酒
    2020-11-27 16:44

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collection;
    import java.util.HashMap;
    import java.util.HashSet;
    import java.util.List;
    import java.util.Set;
    
    public class testing {
        public static void main(String[] args) {
            EligibleOffer efg = new EligibleOffer();
            efg.setCode("1234");
            efg.setName("hey");
            EligibleOffer efg1 = new EligibleOffer();
            efg1.setCode("1234");
            efg1.setName("hey1");
            EligibleOffer efg2 = new EligibleOffer();
            efg2.setCode("1235");
            efg2.setName("hey");
            EligibleOffer efg3 = new EligibleOffer();
            efg3.setCode("1235");
            efg3.setName("hey");
            EligibleOffer[] eligibleOffer = { efg, efg1,efg2 ,efg3};
            removeDupliacte(eligibleOffer);
        }
    
        public static EligibleOffer[] removeDupliacte(EligibleOffer[] array) {
            List list = Arrays.asList(array);
            List list1 = new ArrayList();
            int len = list.size();
            for (int i = 0; i <= len-1; i++) {
                boolean isDupliacte = false;
                EligibleOffer eOfr = (EligibleOffer) list.get(i);
                String value = eOfr.getCode().concat(eOfr.getName());
                if (list1.isEmpty()) {
                    list1.add(list.get(i));
                    continue;
                }
                int len1 = list1.size();
                for (int j = 0; j <= len1-1; j++) {
                    EligibleOffer eOfr1 = (EligibleOffer) list1.get(j);
                    String value1 = eOfr1.getCode().concat(eOfr1.getName());
                    if (value.equals(value1)) {
                        isDupliacte = true;
                        break;
                    }
                    System.out.println(value+"\t"+value1);
                }
                if (!isDupliacte) {
                    list1.add(eOfr);
                }
            }
            System.out.println(list1);
            EligibleOffer[] eligibleOffer = new EligibleOffer[list1.size()];
            list1.toArray(eligibleOffer);
            return eligibleOffer;
        }
    }
    

提交回复
热议问题