1. 程式人生 > >java陣列去重

java陣列去重

閒來無事寫個陣列去重的方法,如果有更好,更簡潔的方法請大家不要忘了留言給我哦!
public static void main(String[] args) {
        String[] arr = {"jslkdfj", "sds", "ss", "dd", "nn", "mm", "nn", "mm"};
        //陣列去重:
        //方案一(將資料放入到新的List裡面)
        List<String> list = Lists.newArrayList();
        for (int i = 0; i < arr.length; i++) {
            if (!list.contains(arr[i])) {
                list.add(arr[i]);
            }
        }
        list.stream().forEach(System.out::println);

//        方案二:(利用java8新特性去重)
        Arrays.asList(arr).stream().distinct().forEach(System.out::println);

//        方案三:(利用Set集合或是TreeSet集合)
        Set<String> set = Sets.newHashSet(Arrays.asList(arr));
        Iterator<String> it = set.iterator();
        while (it.hasNext()) {
            System.out.println(it.next());
        }

//        方案四:(利用Map集合中的keySet、entrySet方法)
        Map<String, Object> map = Maps.newHashMap();
        for (String s : arr) {
            map.put(s, s);
        }
//        for (String key : map.keySet()) {
//            System.out.println(key);
//        }
        for (Map.Entry<String, Object> m : map.entrySet()) {
            System.out.println(m.getKey());
        }


    }