首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在数组列表中查找对象?

如何在数组列表中查找对象?
EN

Stack Overflow用户
提问于 2014-10-23 16:52:35
回答 4查看 95关注 0票数 1

这就是我到目前为止对两个整数和两个字符串的参数所做的。我在数组列表中添加了对象字符串。对于这个方法,只要我输入了正确的id,系统就会打印出画名。该系统只对第一部分有效,即当我输入1440时,但是当我输入其他id时,如1441或1442,系统不显示绘画名称

代码语言:javascript
复制
public PintBook()
    {
        Painting = new Array List <Painting>();`enter code here`
    }

    public void add(int id, String name,String artist,String minibidprice)
    {
        Painting.add (new Painting(id,name,artist,minibidprice));
    }

在此之后,我将对象放入

代码语言:javascript
复制
PintBook p = new PintBook();
p.add(1440,"Water-Lillies","Claude Monet","$10,000.00");
p.add(1441,"Flowers in a Blue Vase ","Paul Cezanne","$20,000.00");
p.add(1442,"The Anglers","Henri Rousseau ","$50,000.00");
p.add(1443,"Wild Potato Dreaming","Emily Kngwarreye","$45,000.00");
p.add(1446,"Argenteuil","Claude Monet ","$100,000.00");
p.add(1447,"Luncheon on the Grass","Paul Cezanne","$50,000.00");
p.add(1448,"Antonia","Amadeo Modigliani ","$30,000.00");

下面编码的目的是在输入正确的id时打印出第二个字符串名

代码语言:javascript
复制
    public void id()
    {
        System.out.println("Enter Painting ID : ");
        int id = sc.nextInt();
        for (Painting e : Painting){
            if(id==e.getID()){
               System.out.println("found");
               System.out.println(e.getPaintingName());

            }else{
                System.out.println("not found");
                break;
            }
        }
    }

当我输入1440时,它显示

代码语言:javascript
复制
1440
found
Water Lillie

但是,当我输入其他正确的id号时,它不会显示第二个字符串名称。我不知道我哪里做错了。谢谢

EN

回答 4

Stack Overflow用户

发布于 2014-10-23 16:56:39

您的break;语句位于错误的位置,请将其移动到if分支(当id匹配时)。

票数 0
EN

Stack Overflow用户

发布于 2014-10-23 16:57:31

这里的问题是,如果列表的第一个元素没有您要搜索的id,就会中断循环。

代码语言:javascript
复制
if(id==e.getID()){
    System.out.println("found");
    System.out.println(e.getPaintingName());
}
else
    System.out.println("not found");
    break;
}

像这样做

代码语言:javascript
复制
boolean found = false;
for (Painting e : Painting) {
    if(id==e.getID()){
       System.out.println("found");
       System.out.println(e.getPaintingName());
       found = true;
       break;
    }
}
if(!found){
    System.out.println("Not found");
}
票数 0
EN

Stack Overflow用户

发布于 2014-10-23 17:00:58

代码语言:javascript
复制
    void printfindings(int id){

    for (Painting e : Painting)

    {
        if(id==e.getID()){
           System.out.println("found");
           System.out.println(e.getPaintingName());

            break;


            }
        else
            System.out.println("not found");

    }
    }}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26524481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档