私有类ArrayList(设置)

时间:2019-02-04 16:19:50

标签: java arrays arraylist

我有一个名为“ classroom”的类,我想用classroom.setMaterias(Arraylist)发送一个数组列表。这是代码吗?

Class Clasroom

public class Aula implements java.io.Serializable {
private String nombre;
private String grupo;
private int tutor;
ArrayList<String> materias = new ArrayList<String>();  // ¿How create arraylist?
public Aula() {
  // Constructor
}

public String getNombre() {
 return nombre;
}

public void setNombre(String nombre) {
 this.nombre = nombre;
}

例如,我想知道是否可以通过SET发送一个“数组列表”,然后使之前在我的班级“教室”中创建的“数组列表”完全相同

我不知道如何创建arraylist或set或get方法。你能帮我吗?

PD:这是我正在谈论的JSON ARRAY:

  if (obj.has("materias")) {
     JSONArray materias = obj.getJSONArray("materias");
     datos.setArrayList(materias);
    // System.out.println(materias); // ["DWES","DWEC","IW","DAW","IE"]

4 个答案:

答案 0 :(得分:0)

    Class Clasroom

       public class Aula implements java.io.Serializable {
       private String nombre;
       private String grupo;
       private int tutor;
       ArrayList<String> materias;  // ¿How create arraylist?
       public Aula() {
         // Constructor
        this.setArrayList(new ArrayList<>()); //Here you initialize the arraylist when you create an instance of this class.
       }

    public String getNombre() {
     return nombre;
    }

    public void setNombre(String nombre) {
     this.nombre = nombre;
    }


  //Here are the getters and setters.
   public ArrayList<String> getList(){
     return this.materias;
   }

    private void setArrayList(ArrayList<String> list){
      this.materias = list;
    }

答案 1 :(得分:0)

正确的方法是使用getter和setter并使用browser.get()接口,而不是直接使用string

List

您可以使用其他ArrayList<>方法将条目添加到List<String> materias = Collections.emptyList(); public Aula() { // Constructor } public List<String> getMaterias() { return materias; } public void setMaterias(List<String> materias ) { this.materias = materias ; } public void addMaterias(String materia) { materias.add(materia); }

答案 2 :(得分:0)

public class Aula implements java.io.Serializable {
  private List<String> materia = new ArrayList<>();
  ...
  public void setMateria1(final List<String> aMateria) {
    this.materia = aMateria;
  }
  public void setMateria2(final List<String> aMateria) {
    this.materia.clean();
    this.materia.addAll(aMateria);
  }
}

setMateria1()用给定的参数替换列表,因此稍后对一个进行的任何更改(项目的EG删除)都会反映在另一个中。

setMateria2()复制自变量的项目时,因此将其删除或插入不会更改其他项目。

ArrayList也是接口List的具体实现。最好将变量声明为基类或接口,而不是具体的实现。

答案 3 :(得分:0)

public class Aula implements java.io.Serializable {
    ArrayList<String> materias = new ArrayList<String>(); 
    ...
    public ArrayList<String> getMaterias(){
       return materias;
    }

   public void setMaterias(JSONList materias) throws JSONException {
       materias.clear();
       for(int i=0;i<materias.length();i++)
          this.materias.add(materias.getString(i));
    }
}

并将完全相同的代码放入课堂课。

第二种方法是在构造函数中设置列表:

public class Aula implements java.io.Serializable {
    ArrayList<String> materias = new ArrayLis<>();
    ...
    public Aula(JSONList materias) throws JSONException {
        for(int i=0;i<materias.length();i++)
          this.materias.add(materias.getString(i)); 
    }
    public ArrayList<String> getMaterias(){
       return materias;
    }
}

与教室相同。并且比您创建它们例如。

Aula aula = new Aula(materias);
Classroom classroom = new Classroom(materias);

这是假设您的列表中有字符串。否则,取决于列表中的数据。 如果它包含其他列表,则需要合并或跳过它们,依此类推...

如果json并不是所有的Strings(例如具有子列表和对象),并且它应该与json的实际结构匹配,我也需要该结构,并且很可能Strings Arraylist可能是此类json的错误容器-树。

顺便说一句。最好将教室更改为Classroom(班级名称为大写C)...