【问题标题】:how i can acess to elements of arraylist<class> [duplicate]我如何访问 arraylist<class> 的元素 [重复]
【发布时间】:2017-04-01 04:52:16
【问题描述】:

嗨,我想知道如何在 java 中访问 arraylist 的元素? 我有这门课。

class flight 
{
    public String start;
    public String end;
    public int timethatend ;
    public int timethatstart;
    flight ( int ts , int tf , String s , String e )
    {
        this.start = s;
        this.end =e;
        this.timethatend = tf;
        this.timethatstart = ts;
    }   
}

我的主类中有这个数组列表

ArrayList<flight>list = new ArrayList<flight>();

现在我想打印 arraylist 的元素我使用这个语法

System.out.println(list.get(0));

但输出是这样的 flight@1f96302 我应该怎么办? 另一个问题我如何更改它们,例如我想更改第一次飞行的起飞时间。

【问题讨论】:

    标签: java class arraylist


    【解决方案1】:

    这是打印对您的飞行对象的对象引用。您需要在 Flight 类中添加一个 toString() 方法并使用它来打印航班信息。例如:

    public String toString() {
        return start + "," + timethatstart + "," + end + "," + timethatend;
    }
    

    打印时:

    System.out.println(list.get(0).toString());
    

    【讨论】:

    • 以及如何访问元素以更改它们。例如对于航班 1,我想更改它起飞的时间。我该怎么办?
    • 您正在使用 list.get(index) 访问元素。您可以直接更改其变量,例如:list.get(0).timethatstart = 2400,或者使用 setter 和 getter 方法。
    【解决方案2】:

    在类中添加一个 toString 方法,如下所示:

    class flight
    {
        public String start;
        public String end;
        public int timethatend ;
        public int timethatstart;
        flight ( int ts , int tf , String s , String e )
        {
            this.start = s;
            this.end =e;
            this.timethatend = tf;
            this.timethatstart = ts;
        }
    
        @Override
        public String toString() {
            return "flight{" +
                    "start='" + start + '\'' +
                    ", end='" + end + '\'' +
                    ", timethatend=" + timethatend +
                    ", timethatstart=" + timethatstart +
                    '}';
        }
    }
    

    在数组列表中添加新的航班元素,如下:

    flight f = new flight(1,2,"12","34");
    ArrayList<flight> list = new ArrayList<flight>();
    list.add(f);
    

    要更改某些元素的值,请执行以下操作:

    list.get(0).start = "1234";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-10
      • 2016-09-29
      • 2021-06-01
      • 2011-08-03
      • 2020-07-21
      相关资源
      最近更新 更多