Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 包含列表中对象的所有nCopies_Java_List_Collections_Contains - Fatal编程技术网

Java 包含列表中对象的所有nCopies

Java 包含列表中对象的所有nCopies,java,list,collections,contains,Java,List,Collections,Contains,我想检查Arraylist是否包含相同元素的n个副本。 问题是: import java.util.ArrayList; 导入java.util.Collections; 导入java.util.List; 公共类testMain{ 公共静态void main(字符串[]args){ myClass myObject=新的myClass(“haha1”); ArrayList a=新的ArrayList(); a、 添加(myObject); a、 添加(新myClass(“haha2”); a

我想检查Arraylist是否包含相同元素的n个副本。 问题是:

import java.util.ArrayList;
导入java.util.Collections;
导入java.util.List;
公共类testMain{
公共静态void main(字符串[]args){
myClass myObject=新的myClass(“haha1”);
ArrayList a=新的ArrayList();
a、 添加(myObject);
a、 添加(新myClass(“haha2”);
a、 添加(新myClass(“HAHAA3”);
名单b;
b=集合.nCopies(5,myObject);
System.out.println(a.containsAll(b));//打印为true
}
静态私有类myClass{
字符串a;
myClass(字符串a){
这个a=a;
}
}
}
问题1:列表
b
的大小大于列表
a
-应为false
问题2:List
b
有多个
myObject
对象(与List
a
相反),应为false

由于containsAll的工作方式,这不起作用,因为我想查看对象
myObject
是否在列表
a
中包含了3次(在本例中)

我知道我可以写我自己的方法,这将完全符合我的要求,但我想知道是否有一个开箱即用的解决方案,或者什么是最“优雅”的处理方式


编辑:删除了对我使用
myClass
的澄清,因为它与给定示例冲突。

使用
Collections.frequency(a,myObject)==5
(或者
Collections.frequency(a,myObject)>=5
,如果您不介意
Collection
中的
myObject
实例超过5个的话

int java.util.Collections.frequency(集合c,对象o)

返回指定集合中与指定对象相等的元素数。更正式地说,返回集合中元素数e,以便(o==null?e==null:o.equals(e))


废话,我怎么没看到。谢谢。“我应该澄清一下,在我的例子中,
myClass
是enum。”-考虑到
newmyclass(…)的多次出现
在您的代码中,不,它不是。更不用说包含的声明了。@Holger我用myClass来说明这个问题,我可以看到在本例中提到enum时它是如何令人困惑的。我删除它是为了不让别人进一步困惑。您没有删除它,而是添加了另一条语句…