Java 私有类ArrayList(集合)

Java 私有类ArrayList(集合),java,arrays,arraylist,Java,Arrays,Arraylist,我有一个名为“教室”的类,我想发送一个带有教室的arraylist.setMaterials(arraylist)。这个代码是: Class Clasroom public class Aula implements java.io.Serializable { private String nombre; private String grupo; private int tutor; ArrayList<String> materias = new ArrayList<S

我有一个名为“教室”的类,我想发送一个带有
教室的arraylist.setMaterials(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;
}
类分类空间
公共类Aula实现java.io.Serializable{
私有字符串名称;
私人字符串grupo;
私人教师;
ArrayList Materials;//?如何创建ArrayList?
公共行政区(){
//建造师
this.setArrayList(new ArrayList());//在这里,您可以在创建此类的实例时初始化ArrayList。
}
公共字符串getNombre(){
返回nombre;
}
public void setNombre(字符串nombre){
this.nombre=nombre;
}
//这里是接球手和接球手。
公共ArrayList getList(){
归还这本书;
}
私有void setArrayList(ArrayList列表){
this.materials=列表;
}
类别房间
公共类Aula实现java.io.Serializable{
私有字符串名称;
私人字符串grupo;
私人教师;
ArrayList Materials;//?如何创建ArrayList?
公共行政区(){
//建造师
this.setArrayList(new ArrayList());//在这里,您可以在创建此类的实例时初始化ArrayList。
}
公共字符串getNombre(){
返回nombre;
}
public void setNombre(字符串nombre){
this.nombre=nombre;
}
//这里是接球手和接球手。
公共ArrayList getList(){
归还这本书;
}
私有void setArrayList(ArrayList列表){
this.materials=列表;
}

正确的方法是使用getter和setter,并使用
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);
  }
List materials=Collections.emptyList();
公共行政区(){
//建造师
}
公共列表getMaterials(){
归还材料;
}
公共材料(列表材料){
this.materialas=materialas;
}
公共无效添加材料(字符串材料){
材料。添加(材料);
}

您可以使用附加的
addMaterials()
方法将条目添加到
列表中
正确的方法是使用getter和setter,并使用
列表
接口,而不是直接使用
数组列表

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);
  }
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);
  }
}
List materials=Collections.emptyList();
公共行政区(){
//建造师
}
公共列表getMaterials(){
归还材料;
}
公共材料(列表材料){
this.materialas=materialas;
}
公共无效添加材料(字符串材料){
材料。添加(材料);
}
您可以使用附加的
addmaterials()
方法将条目添加到
列表中

公共类Aula implements java.io.Serializable{
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);
  }
}
私有列表材质=新的ArrayList(); ... 公共无效SetMaterial1(材料最终清单){ 本材料=材料; } 公共材料2(最终材料清单){ 这个.material.clean(); 本.材料.阿达尔(材料); } }
setmaterial1()
将列表替换为给定的参数,因此稍后对该列表所做的任何更改(如删除项)都会反映在另一个列表中

setmaterial2()
复制参数的项,因此删除或插入其中任何一项都不会更改另一项

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

公共类Aula实现java.io.Serializable{
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));
    }
}
私有列表材质=新的ArrayList(); ... 公共无效SetMaterial1(材料最终清单){ 本材料=材料; } 公共材料2(最终材料清单){ 这个.material.clean(); 本.材料.阿达尔(材料); } }
setmaterial1()
将列表替换为给定的参数,因此稍后对该列表所做的任何更改(如删除项)都会反映在另一个列表中

setmaterial2()
复制参数的项,因此删除或插入其中任何一项都不会更改另一项

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

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));
    }
}
这是假设列表中有字符串,否则取决于列表中的数据。 如果它包含其他列表,它们需要合并或跳过,等等

如果json不是所有的字符串(例如,有子列表和对象),并且它应该与json的实际结构相匹配,那么我也需要这个结构,而且很可能字符串的Arraylist对于这样的json树来说是错误的容器

顺便说一句,最好把教室换成另一个教室(班名大写C)

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

如果json不是所有的字符串(例如,有子列表和对象),并且它应该与json的实际结构相匹配,那么我也需要这个结构,而且很可能字符串的Arraylist对于这样的json树来说是错误的容器


顺便说一句,最好把教室换成教室(类名大写C).

公共ArrayList getMaterials(){返回这个.materials;}
?需要其他信息知道您使用的是哪个“JSONArray”类。最新版本JSON.ORG,我从maven Repository下载jar请参阅快速更新;)公共ArrayList getMaterials呢(){return this.materials;}
?需要关于您正在使用的“JSONArray”类的其他信息。最新版本JSON.ORG,我从maven repositorysee quick update下载jar;)对不起,我该怎么办?JSONArray materialas=obj.getJSONArray(“materialas”);//JSONArray(我更新了帖子)不兼容类型:JSONArray无法转换
Aula aula = new Aula(materias);
Classroom classroom = new Classroom(materias);