Xoá tất cả các phần tử trùng lặp trong Java List

Chắc hẳn đây là một công việc khá phổ biến khi làm việc với hầu hết các ngôn ngữ lập trình không chỉ riêng Java. Tuy nhiên đối với những người vừa bắt đầu học có vẽ khá lúng túng và thường sẽ code rất nhiều cho tính năng đơn giản này. Tuy nhiên Java nói “SAY NO” trong Java hỗ trợ rất nhiều cách để chúng ta có thể xoá các phần tử trùng lặp cách nhanh chóng. Chúng ta cùng xem nhé. 

Sử dụng Set

Cách này khá đơn giảm, Set là một Interface mô mà các implemnt của nó không cho phép một phần tử xuất hiện quá 2 lần. Chúng ta có chuyển các phần tử từ List sang Set để nó xoá các phần tử trùng lặp, sau đó lại chuyển từ HashSet sang List.

List<Integer> listWithDuplicates = Lists.newArrayList(0, 1, 2, 3, 0, 0);
    List<Integer> listWithoutDuplicates 
      = Lists.newArrayList(Sets.newHashSet(listWithDuplicates));

Dictinct Java Stream

Cách trên khá đơn giản, nhưng lại trong khá củ chuối. Cho nên Stream đã cung cấp dictinct() method giúp loại bỏ các phần tử trùng nhau cách nhanh chóng.

List<Integer> listWithDuplicates = Lists.newArrayList(1, 1, 2, 2, 3, 3);
    List<Integer> listWithoutDuplicates = listWithDuplicates.stream()
     .distinct()
     .collect(Collectors.toList())

Tóm lược

Như vậy để xoá các phần tử trùng nhau trong Java trở nên khá đơn giản với Stream API, với distinct() method, cú pháp tường giúp tăng tính đọc hiểu code, hơn nữa còn giảm thiểu code đáng kể nữa. Tội gì mà không dùng distinct() phải không các bạn.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x