如何从数组列表中的指定位置获取值(处理)?

时间:2017-07-12 16:02:36

标签: java arrays arraylist get processing

我需要从数组列表中获取值。列表中的对象在变量(x和y坐标)中存储一些值。

我尝试使用get() - 函数,但它只返回一个这样的字符串:linkTrackerTest $ Object @ 20e76e47。

另外我试过想像objects.get(0(x))但还没有工作。

有人可以帮我吗?

提前感谢: - )

3 个答案:

答案 0 :(得分:2)

你得到的行为是完全正常的。

因为我猜您正在尝试打印get返回的对象,并且因为您没有为Override Object提供toString()方法,最好的Java可以做的是打印所谓的身份哈希码 - "有点内存地址"它的。

尝试将以下内容添加为您的班级成员:

         @Override
        public String toString() {
            return x+" "+y;
        }

这样你就会尝试打印你的类,Java会自动调用提供的toString()

  • 此处的问题不在于您访问ArrayList的元素,get方法所需的全部内容。

答案 1 :(得分:1)

您正在获取该奇数字符串,因为它返回数据的内存地址而不是数据本身,因为java隐式调用toString()

尝试:

yourObject x = list.get(i);

int x = list.get(i).xValue; / int y = list.get(i).yValue;

或只是通过编写自己的

完全覆盖toString()

答案 2 :(得分:0)

不确定这是否是您要求的,但是如果您有一个对象列表 您可以在Object类

中使用getter方法获取要查找的值
public class Obj {

     private int x;
     private int y;

     // constructor in which x, y values are given 
     public Obj(int x_val, int y_val) {
          this.x = x_val;
          this.y = y_val;
     }

     // getter
     public int get_x() {
          return this.x;
     }

     public int get_y() {
          return this.y;
     }



 public static void main(String[] args) {

      List<Obj> Obj_Lst = new ArrayList<Obj>();

      // adding objects to list
      Obj_Lst.add(new Obj(1,6));
      Obj_Lst.add(new Obj(2,5));
      Obj_Lst.add(new Obj(3,4));

      // getting values from object
      System.out.println(Obj_Lst.get(0).get_x());

 }

}

输出

1