Java 为什么是ArrayList<;整数>;它不工作了吗?

Java 为什么是ArrayList<;整数>;它不工作了吗?,java,arraylist,Java,Arraylist,我有: arraylistonlyone=newarraylist(); onlyOne.add(Integer.valueOf(3)); ArrayList two=新的ArrayList(); 二、加法(整数值为(3)); 二、加法(整数,取值为(4)); 布尔检查=两个。包含(仅一个); 但是这个总是返回false,为什么?你没有给它一个整数,而是给它一个数组列表的引用 您需要使用OnlyOne.get(0)从OnlyOne中提取整数,因为two.contains(OnlyOne)正在询

我有:

arraylistonlyone=newarraylist();
onlyOne.add(Integer.valueOf(3));
ArrayList two=新的ArrayList();
二、加法(整数值为(3));
二、加法(整数,取值为(4));
布尔检查=两个。包含(仅一个);

但是这个总是返回false,为什么?

你没有给它一个整数,而是给它一个
数组列表的引用

您需要使用
OnlyOne.get(0)
OnlyOne
中提取整数,因为
two.contains(OnlyOne)
正在询问“two
是否包含对象
OnlyOne
?”。答案是:“不”

要获得更多成功,请尝试以下方法:

ArrayList<Integer> onlyOne = new ArrayList<Integer>();
onlyOne.add(Integer.valueOf(3));

ArrayList<Integer> two = new ArrayList<Integer>();
two.add(Integer.valueOf(3));
two.add(Integer.valueOf(4));

boolean check = two.contains(onlyOne);
或:

因为
contains()
方法比较您传递的参数是否等于
ArrayList
中的某些对象

这应该返回
true

boolean check = two.containsAll(onlyOne);
arraylistonlyone=newarraylist();
OnlyOne.add(Integer.valueOf(3));
ArrayList Two=新的ArrayList();
二、加法(整数值为(3));
二、加法(整数,取值为(4));
布尔值ImCHECK=2.contains(Integer.valueOf(3));

您可能有兴趣使用该方法。

您正在检查
Two
是否包含列表
仅一个
本身


two.containsAll(onlyOne)
是您需要的。

布尔java.util.ArrayList.contains(对象o)

如果此列表包含指定的元素,则返回true。更正式地说,当且仅当此列表包含至少一个元素e时(o==null?e==null:o.equals(e))返回true

指定者:列表中的contains(…),在AbstractCollection中重写:contains(…) 参数: o该列表中存在的待测试元素 返回:
如果此列表仅包含指定的元素,则为true只有一个是ArrayList而不是Integer的实例


请参阅java文档:

我想您需要
包含所有
<代码>两个。包含所有(仅一个)我已经在您的问题(以及前两个答案)中自由地调整了变量,以遵循Java命名约定:变量应该以小写字母开头,只有类型(类、接口等)和常量应该以大写字母开头。哇,伙计们,为什么我的问题如此讨厌?我来自C#那里我们没有集装箱,但无论如何,谢谢大家。containsALL工作了。@Moondustt,因为显然您还没有阅读ArrayList、List或Collection的文档。你应该先阅读文档,然后在这里提问。这是一个例子,我想要这样的东西:Vector1=1,2,3,4,5 Vector2=2,3 Vector1.Contains(Vector2),因为Vector1也有2,3和Vector2。@Moondustt如其他答案所述(投票结果至少为:),这不是
包含的
的工作方式。@Moondustt:我很确定这是完全相同的工作方式!列表。包含是的,LINQ包含不,我错了!还请尝试解释这个问题,不要只是复制文档中的内容(至少不是针对这个问题)。谢谢,当我使用c#并且我正在尝试学习android时,我认为contains也会以同样的方式工作,但containsall工作,谢谢。
boolean check = two.containsAll(onlyOne);
ArrayList<Integer> OnlyOne = new ArrayList<Integer>();
OnlyOne.add(Integer.valueOf(3));

ArrayList<Integer> Two = new ArrayList<Integer>();
Two.add(Integer.valueOf(3));
Two.add(Integer.valueOf(4));

boolean ImCHECK = Two.contains(Integer.valueOf(3));