【问题标题】:How to Convert a String ArrayList to a Double ArrayList and calculate the sum of values?如何将 String ArrayList 转换为 Double ArrayList 并计算值的总和?
【发布时间】:2015-11-15 06:59:49
【问题描述】:

我想做的是

  1. 获取我的字符串数组列表值并将它们添加到双数组列表中。

  2. 计算双精度数组列表中的值之和

  3. 将总和值设置为 TextView。


private ArrayList<String> totals = new ArrayList<>();
private ArrayList<Double> demototal = new ArrayList<>();
//Parsing the JSON String
try
{
total = itemData.getString(ParseBarcode.KEY_TOTAL);
}catch (JSONException e)
{
e.printStackTrace();
}
// add the parsed total to totals arraylist
totals.add(total);

//converting all values from totals array to Double and add to arraylist demototal
for (int i = 0; i < totals.size(); i++) 
{
final String value = totals.get(i);
double total_ary = (double)Math.round((Double.parseDouble(value))*100.0)/100.0;
demototal.add(total_ary);

Toast.makeText(AddInvEst.this, total_ary+"", Toast.LENGTH_SHORT).show();
}

//converting double value to string for setting it to sum textView.
 String amount = Double.toString(setArrayListElement(demototal));
 textViewSum.setText(amount);//set total text to amount

 //calculate amount here we pass setArrayListElement as Double arraylist
 private Double setArrayListElement(ArrayList inArray) {
 Double amount = 0.0d;
 for (int i = 0; i < inArray.size(); i++) {
 amount +=  Double.valueOf(Math.round((Double) inArray.get(i))*100.0)/100.0;
 }
 return amount;
 }

My string arraylist contains values like [51,073,29,620] which is a currency value.

【问题讨论】:

    标签: java android string arraylist double


    【解决方案1】:
        List<String> stringList = new ArrayList<>();
        stringList.add("1.2");
        stringList.add("2.3");
        stringList.add("3.4");
        double result = stringList.stream().collect(Collectors.summingDouble(string -> Double.parseDouble(string)));
    

    【讨论】:

      【解决方案2】:

      • 使用 DoubleStream – Java 1.8:

      List<String> stringList = new ArrayList<>();
      stringList.add( "1.2" );
      stringList.add( "2.3" );
      stringList.add( "3.4" );
      
      double rslt = stringList.stream()
                      .mapToDouble( s -> Double.parseDouble( s ) ).sum();
      

      【讨论】:

      • 谢谢你。
      【解决方案3】:
      List<String> stringList = new ArrayList<>();
      stringList.add("2");
      stringList.add("3");
      stringList.add("5");
      
      double[] doubleList = new double[StringList.size()]; 
      double sum = 0;
      for (int i = 0; i < StringList.size(); ++i) { 
          doubleList[i] = Double.parseDouble(StringList.get(i)); 
          sum += doubleList[i];
      }
      
      textView.setText(sum);
      

      【讨论】:

      • 感谢@Uma Kanth。 :)
      • 非常感谢@Madushan Perera
      【解决方案4】:

      你只需要遍历字符串列表:

      double currValue = 0;
      double sum = 0;
      for(String s : strList) {
          currValue = Double.valueOf(s);
          doubleList.add(currValue);
          sum += currValue;
      } 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-31
        • 2019-10-03
        • 2016-10-10
        • 2021-02-21
        • 2015-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-06
        相关资源
        最近更新 更多