编辑
这里有两个版本。一种使用,其他使用ArrayList
HashSet
比较它们并创建自己的版本,直到您得到所需的内容。
这应该足以涵盖:
附言:这不是学校的作业:)所以如果你只是指导我,就足够了
您问题的一部分。
继续原来的答案:
您可以为此使用和/或。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 方法:
删除此集合的所有元素,这些元素也包含在指定的集合中。
第二个版本还为您提供了重复的相似值和句柄(通过丢弃它们)。
这次可能是 a 而不是 a (不同之处在于,Set 不允许重复值)Collection
Set
List
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]
如果它不能完全满足您的需求,它会给您一个良好的开端,以便您可以从这里开始处理。
读者问题:如何包含所有重复值?