草庐IT

去重复

全部标签

java - 通过与另一个列表比较从一个列表中删除重复项

我有两个对象列表,我想从另一个列表中的一个列表中删除实例。例如我有以下两个列表,并假设每个字母代表对象。列表listA={A,B,C,D,E,F,G,H,I,J}列表listB={D,G,K,P,Z}现在,很明显listB有D和G,它们也在listA上,所以我希望listA像这样listA={A,B,C,E,F,H,I,J}你们能不能建议一下O(n)或小于O(n2)的解决方案。我可以遍历两个列表并通过比较删除重复的实例,但我想要更高效的方法。 最佳答案 如果列表未排序,并且是ArrayLists或其他具有O(n)contains方法

java - ConcurrentHashMap 中 String intern 方法的去重

我看过JavaDays的一个代码,作者说这种有概率的方法对于存储字符串非常有效,类似于Stringintern方法publicclassCHMDeduplicator{privatefinalintprob;privatefinalMapmap;publicCHMDeduplicator(doubleprob){this.prob=(int)(Integer.MIN_VALUE+prob*(1L();}publicTdedup(Tt){if(ThreadLocalRandom.current().nextInt()>prob){returnt;}Texist=map.putIfAbse

java - 基于 Java 8 中的属性和谓词删除重复项

问题基于https://stackoverflow.com/a/29671501/2517622给定一个包含id、name和IQ的员工列表:Listemployee=Arrays.asList(newEmployee(1,"John",80),newEmployee(1,"Bob",120),Employee(1,"Roy",60),newEmployee(2,"Alice",100));我要输出:[Employee{id=1,name='Bob',iq=120},Employee{id=2,name='Alice',iq=100}]因此,根据员工的id属性从列表中删除重复项,并出于显

java - 用 0-(N-1) 中的唯一数字替换重复数字

背景:我有一个长度为N的正随机数数组,其中肯定包含重复项。例如10,4,5,7,10,9,10,9,8,10,5编辑:N可能是32,或者其他一些与该大小差不多的2的幂。问题:我正在尝试找到用0-(N-1)中缺失的数字替换重复项的最快方法。使用上面的例子,我想要一个看起来像这样的结果:10,4,5,7,0,9,1,2,8,3,6目标是让每个数字从0到N-1都有一个,而不仅仅是用0-(N-1)替换所有数字(随机顺序很重要)。编辑:确定性替换也很重要,即相同的输入将有相同的输出(不是随机的)。我的解决方案:目前在Java中实现,使用2个boolean数组来跟踪已使用/未使用的数字([0,N)

Java 8 可重复的自定义注解

我了解Java中的基本注释,例如@Override等。Annotationsareonlymetadataandtheydonotcontainanybusinesslogic.我正在查看来自Oracle的重复注释documentation了解Java8新功能的页面。例如,您正在编写代码以使用“计时器服务,使您能够在给定时间或按特定计划运行方法,类似于UNIXcron服务”。现在你想设置一个定时器来运行一个方法,doPeriodicCleanup,在每个月的最后一天和每个星期五晚上11:00。要设置计时器运行,请创建一个@Schedule注释并将其应用两次到doPeriodicClea

java - 从 ArrayList 的 ArrayList 中删除重复项

这个问题在这里已经有了答案:HowdoIremoverepeatedelementsfromArrayList?(40个答案)关闭5年前。我有一个问题,我确信解决方案很简单,但我找不到它。我有一个ArrayList较小的ArrayList秒。这些列表包含String类型的元素.我想将较小的列表合并为一个,然后删除重复项。让我说清楚。我有这个:[[USA,Maine],[USA,Maine,Kennebunk],[USA,Maine,NorthBerwick],[USA,NewHampshire],[USA,Keene,NewHampshire],[USA,Keene,NewHampsh

java - 从 Java 8 中的列表中提取重复对象

此代码从原始列表中删除重复项,但我想从原始列表中提取重复项->不删除它们(此包名称只是另一个项目的一部分):给定:一个人pojo:packageat.mavila.learn.kafka.kafkaexercises;importorg.apache.commons.lang3.builder.ToStringBuilder;publicclassPerson{privatefinalLongid;privatefinalStringfirstName;privatefinalStringsecondName;privatePerson(finalBuilderbuilder){thi

java - 在属性文件中查找重复键和值的工具

有没有一种工具可以告诉我一个或多个属性文件中的冗余键和值。 最佳答案 /***Purpose:Propertiesdoesn'tdetectduplicatekeys.Sothisexists.*@authorshaned*/packagecom.naehas.tests.configs;importjava.util.Properties;importorg.apache.log4j.Logger;publicclassNaehasPropertiesextendsProperties{privatestaticfinallong

java - Java 中的重复排列(字符串的形式为 : 00001112222)

我有000011122222形式的字符串。即连续数字重复随机编号。次。其他一些示例可能是:00111222233330122200011234444001122222等等。我知道,对于字符串01222,总共有5!/3!的排列是可能的。我需要为每个这样的字符串生成所有这些排列。我曾尝试通过各种方法生成排列。一种是生成所有可能的排列(就像没有重复的字符串一样),但由于我要使用的字符串可能非常大,这会浪费时间生成太多冗余排列。其次,我尝试将数字放在字符数组的随机索引处,该索引等于字符串的大小,并在数字计数与输入字符串相同时终止循环。然而,这样我浪费了很多内存,也占用了很多时间。我需要一种有效

java - Java 中是否有任何无序的、可重复的 Collection 类?

这个问题在这里已经有了答案:DoesJavahaveamultisetdatastructureliketheoneinC++STL?(8个答案)关闭6年前。我想要一个包含无序、可重复项的集合。在Java中,Set是不可重复的,List是有序的,这不是我想要的。Pool似乎是一个合适的集合,但它在Java中不存在。界面应该是这样的:publicinterfacePool{voidset(Titem);Tget();}它存在于某处吗?补充:我意识到我的想法表达不正确。事实上,我想要一个这样的界面:publicinterfacePool{voidput(Titem);TrandomRemo