แก้ไข
นี่คือสองเวอร์ชัน หนึ่งโดยใช้ArrayList
และอื่น ๆ โดยใช้HashSet
เปรียบเทียบและสร้างเวอร์ชันของคุณเองจากสิ่งนี้จนกว่าคุณจะได้สิ่งที่ต้องการ
ควรจะเพียงพอที่จะครอบคลุม:
PS: ไม่ใช่งานมอบหมายของโรงเรียน :) ดังนั้นหากคุณเพียงแค่แนะนำฉันก็เพียงพอแล้ว
ส่วนหนึ่งของคำถามของคุณ
ดำเนินการต่อด้วยคำตอบเดิม:
คุณอาจใช้java.util.Collection
และ / หรือ java.util.ArrayList
เพื่อสิ่งนั้น
retainAllวิธีการทำดังต่อไปนี้:
เก็บเฉพาะองค์ประกอบในคอลเล็กชันนี้ที่มีอยู่ในคอลเล็กชันที่ระบุ
ดูตัวอย่างนี้:
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 );
}
}
แก้ไข
สำหรับส่วนที่สอง (ค่าใกล้เคียงกัน) คุณสามารถใช้เมธอดremoveAll :
ลบองค์ประกอบทั้งหมดของคอลเล็กชันนี้ที่มีอยู่ในคอลเล็กชันที่ระบุด้วย
เวอร์ชันที่สองนี้ให้ค่าที่คล้ายกันและจัดการซ้ำ ๆ (โดยการทิ้ง)
คราวนี้Collection
อาจเป็น a Set
แทนList
(ความแตกต่างคือ Set ไม่อนุญาตให้มีค่าซ้ำ)
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);
}
}
เอาท์พุต:
$ 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]
หากไม่ตรงตามที่คุณต้องการก็จะเป็นการเริ่มต้นที่ดีเพื่อให้คุณจัดการได้จากที่นี่
คำถามสำหรับผู้อ่าน: คุณจะรวมค่าซ้ำทั้งหมดได้อย่างไร?