0

I´ve made 3 ArrayLists with objects of the type <ObjektsDEGR>.

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;}
}

These Objekts i´ve divided into 3 ArrayLists, depending on the value of the "box" attribute.

How can i get the ArrayList "outputList" from outside of the method?

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;
    }
        }

2 Answers 2

1

If you want to just return only outputList

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;
}

If you want to return all lists You can return List of 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;
}

Or List of array if you have fixed number of data to 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};
}
Sign up to request clarification or add additional context in comments.

Comments

1

You can't put a method in another method.

You can just return outputList from writeToArrayList

Or

In writeToArrayList use

Return instead of outputList =

You doesn't need the outputList variable anymore You must return in each cases, with an empty list at the end for example Remove

        return outputList;
    }

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.