如果int变量等于ArrayList中的position,则赋值ArrayList元素

时间:2015-07-14 01:00:44

标签: java arraylist

我想将我的名为iD的int与myArrayList的索引进行比较。如果有匹配(iD = 1并且该索引处有一个元素),我想为我的字符串myName分配该位置的项目值。为此,我使用了:

for (int i =0; i <myArrayList.size (); i++) {
    if (iD == i) { 
      myName = myArrayList.get(i);
    } 

但是我在这一行得到了“无法从MyObject转换为字符串”的错误:

myName = myArrayList.get(i);

以下是整个代码:

int iD = 1;
String myName;


public class MyObject 
{
  public String name;

  public  MyObject( String name) 
  {
    this.name = name;
  } 

  @Override
    public String toString()
  {
    return (name);
  }
}


ArrayList<MyObject> myArrayList = new ArrayList<MyObject>();

void setup() 
{
  size(100, 60);
  myArrayList.add(new MyObject("a"));
  myArrayList.add(new MyObject("b"));
  myArrayList.add(new MyObject("c"));
  for (int i =0; i <myArrayList.size (); i++) {
    if (iD == i) { 
      myName = myArrayList.get(i);
    } 

    System.out.println(myArrayList);
    myArrayList.removeAll(myArrayList);
  }
}

我不明白为什么我会收到此错误,因为myName是一个String而ArrayList包含字符串。 谁能帮我解决这个问题呢?

感谢您的帮助

3 个答案:

答案 0 :(得分:5)

Actually, your arrayList contains "MyObject"s. Try calling the toString method.

myName = myArrayList.get(i).toString();

or

myName = myArrayList.get(i).name since name is public.

答案 1 :(得分:3)

您的MyObject不属于String数据类型。您可以通过执行

来解决此问题
myName = myArrayList.get(i).toString();

答案 2 :(得分:2)

MyObject是一个对象,而不是String。在将其分配给myName之前,需要将其转换为String。

你有没有可以做到的方法?