猿问

Java比较两个列表

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,如果是,那么如何获得我的结果?

请帮忙

这不是学校的作业:)所以,如果你能指导我,那就足够了


慕妹3146593
浏览 893回答 3
3回答

SMILET

你可以试试intersection()和subtract()方法CollectionUtils.intersection()方法提供一个集合,该集合包含公共元素,并且subtract()方法给出了所有不寻常的方法。他们也应该照顾到类似的元素。

白板的微信

这些真的列表(订购,带复制件),还是集(无序,没有副本)?因为如果是后者,那么您可以使用,比方说,java.util.HashSet<E>并在预期的线性时间内使用方便的retainAll.&nbsp;&nbsp;&nbsp;&nbsp;List<String>&nbsp;list1&nbsp;=&nbsp;Arrays.asList( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"milan",&nbsp;"milan",&nbsp;"iga",&nbsp;"dingo",&nbsp;"milan" &nbsp;&nbsp;&nbsp;&nbsp;); &nbsp;&nbsp;&nbsp;&nbsp;List<String>&nbsp;list2&nbsp;=&nbsp;Arrays.asList( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"hafil",&nbsp;"milan",&nbsp;"dingo",&nbsp;"meat" &nbsp;&nbsp;&nbsp;&nbsp;); &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;intersection&nbsp;as&nbsp;set &nbsp;&nbsp;&nbsp;&nbsp;Set<String>&nbsp;intersect&nbsp;=&nbsp;new&nbsp;HashSet<String>(list1); &nbsp;&nbsp;&nbsp;&nbsp;intersect.retainAll(list2); &nbsp;&nbsp;&nbsp;&nbsp;System.out.println(intersect.size());&nbsp;//&nbsp;prints&nbsp;"2" &nbsp;&nbsp;&nbsp;&nbsp;System.out.println(intersect);&nbsp;//&nbsp;prints&nbsp;"[milan,&nbsp;dingo]" &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;intersection/union&nbsp;as&nbsp;list &nbsp;&nbsp;&nbsp;&nbsp;List<String>&nbsp;intersectList&nbsp;=&nbsp;new&nbsp;ArrayList<String>(); &nbsp;&nbsp;&nbsp;&nbsp;intersectList.addAll(list1); &nbsp;&nbsp;&nbsp;&nbsp;intersectList.addAll(list2); &nbsp;&nbsp;&nbsp;&nbsp;intersectList.retainAll(intersect); &nbsp;&nbsp;&nbsp;&nbsp;System.out.println(intersectList); &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;prints&nbsp;"[milan,&nbsp;milan,&nbsp;dingo,&nbsp;milan,&nbsp;milan,&nbsp;dingo]" &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;original&nbsp;lists&nbsp;are&nbsp;structurally&nbsp;unmodified &nbsp;&nbsp;&nbsp;&nbsp;System.out.println(list1);&nbsp;//&nbsp;prints&nbsp;"[milan,&nbsp;milan,&nbsp;iga,&nbsp;dingo,&nbsp;milan]" &nbsp;&nbsp;&nbsp;&nbsp;System.out.println(list2);&nbsp;//&nbsp;prints&nbsp;"[hafil,&nbsp;milan,&nbsp;dingo,&nbsp;meat]"
随时随地看视频慕课网APP
我要回答