为了账号安全,请及时绑定邮箱和手机立即绑定

请问Java比较两个列表

请问Java比较两个列表

慕慕森 2019-08-03 13:03:33
Java比较两个列表我有两个列表(不是java列表,可以说是两个列)例如**List 1**            **Lists 2**   milan                 hafil   dingo                 iga   iga                   dingo   elpha                 binga   hafil                 mike   meat                  dingo   milan   elpha   meat   iga                      neeta.peeta我想要一个返回多少元素是相同的方法。对于这个例子,它应该是3,并且应该返回列表和不同值的相似值。我应该使用hashmap,如果是,那么如何获得我的结果?请帮忙这不是学校的作业:)所以,如果你能指导我,那就足够了
查看完整描述

3 回答

?
梦里花落0921

TA贡献1772条经验 获得超6个赞

你可以试试intersection()subtract()方法CollectionUtils.

intersection()方法提供一个集合,该集合包含公共元素,并且subtract()方法给出了所有不寻常的方法。

他们也应该照顾到类似的元素。



查看完整回答
反对 回复 2019-08-04
?
holdtom

TA贡献1805条经验 获得超10个赞

这些真的列表(订购,带复制件),还是(无序,没有副本)?

因为如果是后者,那么您可以使用,比方说,java.util.HashSet<E>并在预期的线性时间内使用方便的retainAll.

    List<String> list1 = Arrays.asList(
        "milan", "milan", "iga", "dingo", "milan"
    );
    List<String> list2 = Arrays.asList(
        "hafil", "milan", "dingo", "meat"
    );

    // intersection as set
    Set<String> intersect = new HashSet<String>(list1);
    intersect.retainAll(list2);
    System.out.println(intersect.size()); // prints "2"
    System.out.println(intersect); // prints "[milan, dingo]"

    // intersection/union as list
    List<String> intersectList = new ArrayList<String>();
    intersectList.addAll(list1);
    intersectList.addAll(list2);
    intersectList.retainAll(intersect);
    System.out.println(intersectList);
    // prints "[milan, milan, dingo, milan, milan, dingo]"

    // original lists are structurally unmodified
    System.out.println(list1); // prints "[milan, milan, iga, dingo, milan]"
    System.out.println(list2); // prints "[hafil, milan, dingo, meat]"




查看完整回答
反对 回复 2019-08-04
  • 3 回答
  • 0 关注
  • 296 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信