编辑
这是两个版本。一种使用
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而不是
a 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 RepeatedOne:[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]
如果它不能完全满足您的需求,则可以为您提供一个良好的开端,因此您可以从这里开始。
给读者的问题:您将如何包括所有重复的值?
分享改善这个答案
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)