首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中编辑字符串、布尔值和整数的ArrayList

在Java中编辑字符串、布尔值和整数的ArrayList
EN

Stack Overflow用户
提问于 2015-01-30 23:39:09
回答 1查看 1K关注 0票数 0

我的编码课有一个作业,我已经完成了大部分,但我不知道最后一部分该怎么做。

这是作业“为植物苗木创建一个类Plant,它有五个与植物相关的属性:

代码语言:javascript
复制
Maximum Height in feet
Common name
Scientific name
Price
Whether or not it is fragile.

为类Plant创建两个您自己选择的方法。允许用户从控制台创建设备对象。创建植物对象后,将该对象添加到植物的ArrayList中。

允许用户编辑有关已输入的工厂对象的任何信息。

...And可获得额外的10个积分!!允许用户查看按价格(从低到高)、学名(按属的字母排序)或常用名称(按第一个单词的第一个字母排序)排序的植物。分配是个人的。“

我的代码

代码语言:javascript
复制
    class nursery{

    private int height;
    private String cName;
    private String sName;
    private int cost;
    private boolean fragile;

    public nursery(int height, String cName, String sName, int cost, boolean fragile)
    {
        this.height=height;
        this.cName=cName;
        this.sName=sName;
        this.cost=cost;
        this.fragile=fragile;
    }
}

public class Nursery {




    public static void main(String[] args) {

        ArrayList<nursery> plant = new ArrayList<>();

        Scanner s = new Scanner(System.in);

        while(true){
            //get the plant varibles
            System.out.println("Enter the common name of the plant: ");
            String cName = s.next();
            System.out.println("Enter the scientific name of the plant: ");
            String sName = s.next();
            System.out.println("Enter the height of the plant: ");
            int height = s.nextInt();
            System.out.println("Enter whether the plant is fragile or not: ");
            boolean fragile =s.nextBoolean();
            System.out.println("Enter the price of the plant: ");
            int cost=s.nextInt();
            //add to the arraylist
            nursery Plant = new nursery(height, cName, sName, cost, fragile);
            plant.add(Plant);
            System.out.println("If u would like to stop entering press q.");
            String quit = s.next();
            //quit out if wanted
            if(quit.equals("q")||quit.equals("Q"))
            break;
        }



    }

}

我不知道如何做的是“允许用户编辑关于已经输入的工厂对象的任何信息”。我试过搜索,但一直找不到答案。

EN

回答 1

Stack Overflow用户

发布于 2015-01-30 23:50:12

您已经将所有的行星对象( nursery )保留到ArrayList<nursery> plant,所以您需要做的就是从列表中找到它并重置它的值。

一般的示例可能如下所示:

代码语言:javascript
复制
nursery plant_to_update = null;
for (int i=0; i<plant.length; i++){
    current_plant = plant.get(i);
    // say user want to update planet with cName as 'planet 1'
    if(plan_to_update.cName == "planet 1"){ 
        plant_to_update = current_plant;
        break;
    }
}
if( plant_to_update != null){
    // update planet 1 with new value
    plant_to_update.setHeight(50);
    plant_to_update.setCost(60);
}

并且,在nursery类中添加setter以更新这些私有成员

代码语言:javascript
复制
public void setHeight(int height){
    this.height = height;
}

public void setCost(int cost){
    this.cost = cost;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28239412

复制
相关文章

相似问题

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