如何将String ArrayList转换为Double ArrayList并计算值的总和?

时间:2015-11-15 06:59:50

标签: java android string arraylist double

我要做的是

  1. 取我的字符串arraylist值并将它们添加到双arraylist。

  2. 计算双arraylist和

  3. 中的值的总和
  4. 将总和值设置为TextView。

  5. 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.
    

4 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

•使用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 :(得分:0)

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

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