我有一个像这样构建的arraylist:
在课堂上:Strings.java
ArrayList<MyQueue> strings = new ArrayList<MyQueue>();
strings.add (new MyQueue("paper", "clips", "eraser"));
strings.add (new MyQueue("paperplane", "numbers", "pineapple"));
课堂上:MyQueue.java
--Constructor with 3 string parameters--
--Getters/setters for three strings--
现在在Strings.java类中,我想搜索我的ArrayList“strings”以查看它是否有字符串“paper”?
我怎么能有效地做到这一点?
答案 0 :(得分:0)
遍历strings
以获取每个MyQueue
,然后遍历每个MyQueue
中的元素以查看它是否具有“纸张”
for(MyQueue mq:strings){
if(mq.getString1().equals("paper") ||
mq.getString2().equals("paper") ||
mq.getString3().equals("paper") )
return true;
}
return false;
其中getString#()是获取Strings
中每个MyQueue
的方法
答案 1 :(得分:0)
您应该尝试覆盖equals
方法,以使用第一个属性比较对象。然后调用contains
方法检查具有“paper”属性的对象。 contains
方法在内部使用equals
,这就是您需要覆盖等于的原因。