Java中如何将方法返回结果存入数组或集合以供后续使用?
正确实现将Java方法返回值存入数组/集合的方案
首先咱们先梳理下你现有代码里的几个关键问题,这些语法错误是导致你困惑的主要原因:
- 方法定义不规范:你写的
METHOD double taxes()和NEW EDIT double riquezaTotalHijo()是无效语法,Java方法需要正确的访问修饰符(比如public),不能用这些自定义关键字。 - 集合操作位置错误:直接在类的成员区域写
list.add(riquezaTotalHijo());是不允许的——这类执行语句必须放在方法、构造器或者初始化块里,不能直接暴露在类的顶层。 - 数组赋值语法错误:
double [] = taxes();既没有变量名,单个double值也不能直接赋值给数组,必须先初始化数组再填充元素。
接下来我给你一个完整的可运行示例,同时展示存入数组和存入ArrayList两种方案,你可以根据需求选择:
import java.util.ArrayList; public class Wealth { // 先声明你用到的所有成员变量(必须先定义才能在方法中使用) private double riquezaEnCarros; private double riquezaEnCasas; private double riquezaEnEfectivo; private double impuestosHijo; private double riquezaTotalPadre; // 构造器:用于初始化类的属性值 public Wealth(double carWealth, double houseWealth, double cashWealth, double childTaxes, double parentTotalWealth) { this.riquezaEnCarros = carWealth; this.riquezaEnCasas = houseWealth; this.riquezaEnEfectivo = cashWealth; this.impuestosHijo = childTaxes; this.riquezaTotalPadre = parentTotalWealth; } // 修正后的税费计算方法 public double taxes() { return (0.08 * riquezaEnCarros) + (0.15 * riquezaEnCasas); } // 修正后的子女总资产计算方法 public double riquezaTotalHijo() { return riquezaEnEfectivo + riquezaEnCarros + riquezaEnCasas - impuestosHijo + riquezaTotalPadre; } // 方案1:将方法返回值存入数组(适合结果数量固定的场景) public double[] getResultsAsArray() { // 创建长度为2的数组,分别存储税费和子女总资产结果 double[] resultArray = new double[2]; resultArray[0] = taxes(); // 把taxes()的返回值存入数组第一个位置 resultArray[1] = riquezaTotalHijo(); // 把riquezaTotalHijo()的返回值存入第二个位置 return resultArray; } // 方案2:将方法返回值存入ArrayList(适合结果数量动态变化的场景) public ArrayList<Double> getResultsAsArrayList() { ArrayList<Double> resultList = new ArrayList<>(); resultList.add(taxes()); // 添加税费结果 resultList.add(riquezaTotalHijo()); // 添加子女总资产结果 return resultList; } // 测试用例:运行这段代码就能看到效果 public static void main(String[] args) { // 创建Wealth实例,传入测试数据 Wealth familyWealth = new Wealth(10000.0, 50000.0, 2000.0, 1000.0, 15000.0); // 使用数组存储结果并打印 double[] arrayResults = familyWealth.getResultsAsArray(); System.out.println("数组中的税费结果: " + arrayResults[0]); System.out.println("数组中的子女总资产结果: " + arrayResults[1]); // 使用ArrayList存储结果并打印 ArrayList<Double> listResults = familyWealth.getResultsAsArrayList(); System.out.println("ArrayList中的税费结果: " + listResults.get(0)); System.out.println("ArrayList中的子女总资产结果: " + listResults.get(1)); } }
额外说明:如果需要多次存储结果(比如每次调用方法都把结果追加到集合)
如果你想在类内部维护一个持久的集合,用来存储多次计算的结果,可以这样修改:
// 在Wealth类中添加成员变量 private ArrayList<Double> persistentResults = new ArrayList<>(); // 添加一个方法,每次调用就把当前的计算结果追加到集合 public void appendResultsToCollection() { persistentResults.add(taxes()); persistentResults.add(riquezaTotalHijo()); } // 提供获取集合的方法(返回副本,避免外部直接修改原集合) public ArrayList<Double> getPersistentResults() { return new ArrayList<>(persistentResults); }
以后每次调用appendResultsToCollection(),就会把最新的税费和子女总资产结果添加到persistentResults集合中,随时可以通过getPersistentResults()获取所有存储的结果。
最后总结下选择建议:
- 如果你的结果数量是固定的(比如就这两个方法的返回值),用数组更高效;
- 如果后续可能需要添加更多方法的返回值,或者需要动态增删元素,用ArrayList更灵活。
内容的提问来源于stack exchange,提问作者Carlos José Zepeda
相关产品推荐
相关产品推荐

