创建多个ArrayLists,return-function

Create multiple ArrayLists, return-function

我用 <ObjektsDEGR>.

类型的对象创建了 3 个 ArrayList

ObjektsDEGR class:

public class ObjektsDEGR implements Serializable {

    private String voc;
    private String vocTR;
    private int index;
    private int box;

    private transient String vocF1;
    private transient String vocF2;
    private transient String vocF3;
    private transient String vocF4;
    private transient String vocF5;

    //+++++++++++ KONSTRUKTOR +++++++++++++

    public ObjektsDEGR(int voc, int vocTR, int index, int box, int vocF1, int vocF2, int vocF3, int vocF4, int vocF5){

        this.voc = Integer.toString(voc);
        this.vocTR = Integer.toString(vocTR);
        this.index = index;
        this.vocF1 = Integer.toString(vocF1);
        this.vocF2 = Integer.toString(vocF2);
        this.vocF3 = Integer.toString(vocF3);
        this.vocF4 = Integer.toString(vocF4);
        this.vocF5 = Integer.toString(vocF5);
        this.box = box;
    }

    //+++++ GETTER ++++++

    public int getIndex(){
        return index;
    }
    public String getVoc() {
        return voc;
    }
    public String getVocTR(){
        return vocTR;
    }
    public String getVocF1() {
        return vocF1;
    }
    public String getVocF2() {
        return vocF2;
    }
    public String getVocF3() {
        return vocF3;
    }
    public String getVocF4() {
        return vocF4;
    }
    public String getVocF5() {
        return vocF5;
    }
    public int getBox(){
        return box;
    }

    //++++ SETTER +++++

    public void setIndex(int index){
        this.index = index;
    }
    public void setVoc(int voc){
        this.voc = Integer.toString(voc);
    }
    public void setVocTR(int vocTR){
        this.vocTR = Integer.toString(vocTR);
    }
    public void setVocF1(int vocF1){
        this.voc = Integer.toString(vocF1);
    }
    public void setVocF2(int vocF2){
        this.voc = Integer.toString(vocF2);
    }
    public void setVocF3(int vocF3){
        this.voc = Integer.toString(vocF3);
    }
    public void setVocF4(int vocF4){
        this.voc = Integer.toString(vocF4);
    }
    public void setVocF5(int vocF5){
        this.voc = Integer.toString(vocF5);
    }
    public void setBox (int box){ this.box = box;}
}

根据“box”属性的值,我将这些对象分为 3 个 ArrayList。

如何从方法外部获取 ArrayList“outputList”?

ObjektsDEGR[] basicDEGR = new ObjektsDEGR[allVoc];

public ArrayList<ObjektsDEGR> writeToArrayList(int category) {

        ArrayList<ObjektsDEGR> box1Filtered = new ArrayList<>();
        ArrayList<ObjektsDEGR> box2Filtered = new ArrayList<>();
        ArrayList<ObjektsDEGR> box3Filtered = new ArrayList<>();
        ArrayList<ObjektsDEGR> outputList = new ArrayList<>();

        Integer comparer1 = 1;
        Integer comparer2 = 2;
        Integer comparer3 = 3;

        //region Implementierung
        for (int j = ((category-1)*nV); j < nV+((category-1)*nV); j++){

        if (comparer1.equals(basicDEGR[j].getBox())) {
            box1Filtered.add(basicDEGR[j]);
        }
            else if (comparer2.equals(basicDEGR[j].getBox())) {
                box2Filtered.add(basicDEGR[j]);
            }
            else if (comparer3.equals(basicDEGR[j].getBox())) {
                box3Filtered.add(basicDEGR[j]);
            }
            else {
                box3Filtered.add(basicDEGR[j]);
            }
            }//endregion


    if (box1Filtered.isEmpty())
    {
        if (box2Filtered.isEmpty()) {
            outputList = box3Filtered;
        }
        else {
            outputList = box2Filtered;
        }
    }
    else
    {
        outputList = box1Filtered;
    }

    public ArrayList<ObjektsDEGR> getOutputList(){
        return outputList;
    }
        }

不能将一个方法放在另一个方法中。

您可以 return 从 writeToArrayList

输出列表

或者

在writeToArrayList中使用

Return 代替 outputList =

您不再需要 outputList 变量 在每种情况下都必须 return,例如末尾有一个空列表 移除

        return outputList;
    }

如果你只想return只输出List

public ArrayList<ObjektsDEGR> writeToArrayList(int category) {
    ArrayList<ObjektsDEGR> box1Filtered = new ArrayList<>();
    ArrayList<ObjektsDEGR> box2Filtered = new ArrayList<>();
    ArrayList<ObjektsDEGR> box3Filtered = new ArrayList<>();
    ArrayList<ObjektsDEGR> outputList = new ArrayList<>();

    /*
     * your main logic
     *
     * */

    return outputList;
}

如果要return所有列表 你可以 return ArrayList

列表
public List<ArrayList<ObjektsDEGR>> writeToArrayList(int category) {
    ArrayList<ObjektsDEGR> box1Filtered = new ArrayList<>();
    ArrayList<ObjektsDEGR> box2Filtered = new ArrayList<>();
    ArrayList<ObjektsDEGR> box3Filtered = new ArrayList<>();
    ArrayList<ObjektsDEGR> outputList = new ArrayList<>();

    /*
     * your main logic
     *
     * */

    List<ArrayList<ObjektsDEGR>> resultList = new ArrayList<>();
    resultList.add(box1Filtered);
    resultList.add(box2Filtered);
    resultList.add(box3Filtered);
    resultList.add(outputList);
    return resultList;
}

或者数组列表,如果你有固定数量的数据到return

public ArrayList<ObjektsDEGR>[] writeToArrayList(int category) {
    ArrayList<ObjektsDEGR> box1Filtered = new ArrayList<>();
    ArrayList<ObjektsDEGR> box2Filtered = new ArrayList<>();
    ArrayList<ObjektsDEGR> box3Filtered = new ArrayList<>();
    ArrayList<ObjektsDEGR> outputList = new ArrayList<>();

    /*
     * your main logic
     *
     * */

    return (ArrayList<ObjektsDEGR>[]) new ArrayList[]{box1Filtered, box2Filtered, box3Filtered, outputList};
}