BIÊN TẬP
Đây là hai phiên bản. Một sử dụng ArrayList
và một sử dụng khácHashSet
So sánh chúng và tạo phiên bản của riêng bạn từ đó, cho đến khi bạn nhận được thứ mình cần.
Điều này sẽ đủ để bao gồm:
PS: Không phải là bài tập ở trường đâu :) Nên chỉ cần bạn hướng dẫn là đủ
một phần của câu hỏi của bạn.
tiếp tục với câu trả lời ban đầu:
Bạn có thể sử dụng một java.util.Collection
và / hoặc java.util.ArrayList
cho điều đó.
Các retainAll phương pháp nào sau đây:
Chỉ giữ lại các phần tử trong bộ sưu tập này có trong bộ sưu tập được chỉ định
xem mẫu này:
import java.util.Collection;
import java.util.ArrayList;
import java.util.Arrays;
public class Repeated {
public static void main( String [] args ) {
Collection listOne = new ArrayList(Arrays.asList("milan","dingo", "elpha", "hafil", "meat", "iga", "neeta.peeta"));
Collection listTwo = new ArrayList(Arrays.asList("hafil", "iga", "binga", "mike", "dingo"));
listOne.retainAll( listTwo );
System.out.println( listOne );
}
}
BIÊN TẬP
Đối với phần thứ hai (các giá trị tương tự), bạn có thể sử dụng phương thức removeAll :
Xóa tất cả các phần tử của bộ sưu tập này cũng có trong bộ sưu tập được chỉ định.
Phiên bản thứ hai này cũng cung cấp cho bạn các giá trị và xử lý tương tự được lặp lại (bằng cách loại bỏ chúng).
Lần này Collection
có thể là a Set
thay vì a List
(sự khác biệt là, Set không cho phép các giá trị lặp lại)
import java.util.Collection;
import java.util.HashSet;
import java.util.Arrays;
class Repeated {
public static void main( String [] args ) {
Collection<String> listOne = Arrays.asList("milan","iga",
"dingo","iga",
"elpha","iga",
"hafil","iga",
"meat","iga",
"neeta.peeta","iga");
Collection<String> listTwo = Arrays.asList("hafil",
"iga",
"binga",
"mike",
"dingo","dingo","dingo");
Collection<String> similar = new HashSet<String>( listOne );
Collection<String> different = new HashSet<String>();
different.addAll( listOne );
different.addAll( listTwo );
similar.retainAll( listTwo );
different.removeAll( similar );
System.out.printf("One:%s%nTwo:%s%nSimilar:%s%nDifferent:%s%n", listOne, listTwo, similar, different);
}
}
Đầu ra:
$ java Repeated
One:[milan, iga, dingo, iga, elpha, iga, hafil, iga, meat, iga, neeta.peeta, iga]
Two:[hafil, iga, binga, mike, dingo, dingo, dingo]
Similar:[dingo, iga, hafil]
Different:[mike, binga, milan, meat, elpha, neeta.peeta]
Nếu nó không làm chính xác những gì bạn cần, nó sẽ mang lại cho bạn một khởi đầu tốt để bạn có thể xử lý từ đây.
Câu hỏi cho người đọc: Bạn sẽ bao gồm tất cả các giá trị lặp lại như thế nào?