Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
6年前关闭。
假设我有两个Arraylist。
这应该给我Arraylist一个包含以下元素的元素:
我的输出:
第一部分是由贾登·史密斯(Jaden Smith)主演的电影,第二部分是由威尔·史密斯(Will Smith)主演的电影,我只想要兼具两者的电影。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
6年前关闭。
假设我有两个Arraylist。
a.add("Isabella");
a.add("Angelina");
a.add("Pille");
a.add("Hazem");
b.add("Isabella");
b.add("Angelina");
b.add("Bianca");
a.retainAll(b);
这应该给我Arraylist一个包含以下元素的元素:
Isabella, Angelina, Pille, Hazem
。但是,当我尝试a.size()
时,我得到0。为什么?我的输出:
[DEBUG] The Karate Kid
[DEBUG] The Day the Earth Stood Still
[DEBUG] The Pursuit of Happyness
[DEBUG] Justin Bieber: Never Say Never
[DEBUG] After Earth
[DEBUG] Independence Day
[DEBUG] Men in Black
[DEBUG] Men in Black II
[DEBUG] Hancock
[DEBUG] Shark Tale
[DEBUG] Made in America
[DEBUG] Six Degrees of Separation
[DEBUG] Jersey Girl
[DEBUG] The Legend of Bagger Vance
[DEBUG] Men in Black 3
[DEBUG] Seven Pounds
[DEBUG] Bad Boys II
[DEBUG] Bad Boys 3
[DEBUG] Enemy of the State
[DEBUG] Wild Wild West
[DEBUG] Hitch
[DEBUG] Ali
[DEBUG] I, Robot
[DEBUG] Live 8
[DEBUG] Where The Day Takes You
[DEBUG] Independence Day 3
[DEBUG] I, Robot 2
[DEBUG] The Pursuit of Happyness
[DEBUG] I Am Legend
[DEBUG] Independence Day 2
[DEBUG] After Earth
[DEBUG] Bad Boys
[DEBUG] Partners in Time: The Making of MIB 3
[DEBUG] David Blaine: Real or Magic
[DEBUG] Size: 0
第一部分是由贾登·史密斯(Jaden Smith)主演的电影,第二部分是由威尔·史密斯(Will Smith)主演的电影,我只想要兼具两者的电影。
retainAll()
是进行此类工作的最佳方法吗? 最佳答案
我怀疑您是在列表中而不是字符串中存储自己的类的实例。retainAll
使用equals
方法比较内容。如果要存储自己的类的实例,并且该类不覆盖equals
,它将比较引用。由于两个列表中没有相同的实例(而是包含相同值的不同实例),因此它将从第一个列表中删除所有电影。
您可以通过在类中实现equals
来防止这种情况。为此,您可以查看this答案。
关于java - Java的retainAll()不工作? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20448604/
10-11 02:28