添加元素基类arraylist的集合?

时间:2013-12-28 11:27:17

标签: java collections arraylist

我使用的是两个类是变量类,另一个是arraylist测试类。我在variablesclass中添加了多个值。如何添加元素基类arraylist的集合?

public class VariablesClass {

    private ArrayList<Integer> ids;
    private ArrayList<String> names;


    public ArrayList<Integer> getIds() {
        return ids;
    }
    public void setIds(ArrayList<Integer> ids) {
        this.ids = ids;
    }
    public ArrayList<String> getNames() {
        return names;
    }
    public void setNames(ArrayList<String> names) {
        this.names = names;
    }

}

主要课程

public class ArraylistTest {

    public static void main(String args[]) {

        VariablesClass varClass = null;
        try{
            varClass=new VariablesClass();

            varClass.setIds(11);
            varClass.getIds().add(12);
            varClass.getIds().add(13);
            varClass.getIds().add(14);
            varClass.getIds().add(15);
            varClass.getNames().add("karthick");
            varClass.getNames().add("Ramana");
            varClass.getNames().add("Priya");
            varClass.getNames().add("Madhu");
            varClass.getNames().add("Ammu");

        }catch(Exception e){
            e.getLocalizedMessage();
        }


        for(int is: varClass.getIds()){
            System.out.println("Integer Previous Class :"+is);
        }

    }

}

如何使用此类的get / set。这里我得到空指针异常如何解决呢?

2 个答案:

答案 0 :(得分:2)

您可以执行@sanket建议的操作,或者然后使用您当前的类:

public static void main(String args[]) {
  VariablesClass varClass = null;

  try {
    varClass = new VariablesClass();
    ArrayList<Integer> ids = new ArrayList<Integer>();
    ArrayList<String> names = new ArrayList<String>();

    ids.add(11);
    ids.add(12);
    ids.add(13);
    ids.add(14);
    ids.add(15);

    varClass.setIds(ids);

    names.add("karthick");
    names.add("Ramana");
    names.add("Priya");
    names.add("Madhu");
    names.add("Ammu");

    varClass.setNames(names);
  } catch(Exception e) {
    e.getLocalizedMessage();
  }

  for(int is: varClass.getIds()){
    System.out.println("Integer Previous Class :"+is);
  }
}

答案 1 :(得分:1)

上面的代码会给你一个空指针。原因:您的数组列表未初始化。

您需要在类的构造函数中初始化它们。

此外,最好定义更多方法,而不是将数据添加到数组列表的getter和setter。

public class VariablesClass {


private ArrayList<Integer> ids;
private ArrayList<String> names;


 public VariablesClass() {
       ids = new ArrayList<Integer>();
       names = new ArrayList<String>();
    }

public ArrayList<Integer> getIds() {
    return ids;
}
public void setIds(ArrayList<Integer> ids) {
    this.ids = ids;
}
public ArrayList<String> getNames() {
    return names;
}
public void setNames(ArrayList<String> names) {
    this.names = names;
}

public void addName(String name)
{
    this.names.add(name);
}

public void addId(Integer id)
{
    this.ids.add(id);
}

}

根据需要多次调用addName方法!