EDIT
Dưới đây là hai phiên bản. Một sử dụng ArrayList
và khác sử dụng HashSet
Hãy so sánh chúng và tạo phiên bản riêng của bạn từ này, cho đến khi bạn có được những gì bạn cần.
này nên là đủ để trang trải các:
PS: Nó không phải là một trường chuyển nhượng :) Vì vậy, nếu bạn chỉ cần hướng dẫn cho tôi nó sẽ đủ
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 đó.
Phương pháp retainAll nào sau đây:
chỉ giữ lại các yếu tố trong bộ sưu tập này được chứa trong bộ sưu tập quy đị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);
}
}
EDIT
Đối với phần thứ hai (giá trị tương tự), bạn có thể sử dụng các phương pháp removeAll:
Loại bỏ tất cả các yếu tố của bộ sưu tập này cũng được chứa trong bộ sưu tập xác định.
Phiên bản thứ hai này cung cấp cho bạn các giá trị và xử lý tương tự lặp lại (bằng cách loại bỏ chúng).
Lần này Collection
có thể là một Set
thay vì một List
(giá trị chênh lệch là, Set không cho phép 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);
}
}
Output:
$ 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ó doesn' t làm chính xác những gì bạn cần, nó 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 dành 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?
Xin gợi ý cho bất kỳ cấu trúc dữ liệu trong danh sách không phải là danh sách java hoặc hashmap hoặc bất kỳ cấu trúc dữ liệu – user238384
Hãy chắc chắn để suy nghĩ về những gì bạn nên làm gì trong trường hợp ngoại lệ. Danh sách có thể chứa cùng một giá trị hai lần không? Nếu vậy, nếu "dingo" nằm trong cả hai danh sách hai lần, thì điều đó có được tính là hai phần tử chung hay chỉ một? – JavadocMD
Bạn có thể sửa đổi một trong các Danh sách không? –