我要做的是
取我的字符串arraylist值并将它们添加到双arraylist。
计算双arraylist和
将总和值设置为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.
答案 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;
}