问题描述
我已经用 <ObjektsDEGR>
类型的对象制作了 3 个 ArrayList。
ObjektsDEGR 类:
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;
}
}
解决方法
你不能把一个方法放在另一个方法中。
你可以直接从 writeToArrayList 返回 outputList
或
在 writeToArrayList 中使用
Return
代替
outputList =
您不再需要 outputList 变量了 您必须在每种情况下返回,例如在末尾有一个空列表 删除
return outputList;
}
,
如果你只想返回 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;
}
如果要返回所有列表 您可以返回 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;
}
或者数组列表,如果你有固定数量的数据要返回
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};
}