如何将数据存储到数组以及如何从数组中求和

时间:2019-06-28 14:51:40

标签: java android

我在radiogroup中有一个单选按钮,如果我单击它,我将获得该值并将其显示为Toast消息,然后将值存储到Array中。

这是我的代码。

此代码具有向单选按钮的文本获取值的功能。

/Home/Get

在获得Array中的值之后,我想对新变量中的数据求和。

2 个答案:

答案 0 :(得分:1)

setOnCheckedChangeListener之外声明一个列表,每次单击单选按钮时,将该元素添加到列表中:

ArrayList mArrayList = new ArrayList();

mRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){

        @Override
        public void onCheckedChanged(RadioGroup radioGroup, int i) {
            RadioButton checkedRadioButton = (RadioButton) view.findViewById(i);
            String text = checkedRadioButton.getText().toString();
            mArrayList.add(Integer.parseInt(text));
            Toast.makeText(getContext(), text, Toast.LENGTH_SHORT).show();
        }

    });

并且比要获取列表的总和:

如果您使用的是Java 8:

int sum = mArrayList .stream().mapToInt(Integer::intValue).sum();

如果不是:

int sum = 0;

for(Integer iterator: mArrayList){  
  sum+=iterator
 }

//之后您的款项准备好了

就这样

修改

只需确保所有单选按钮都是数字。如果您遇到空数字或字符,您的Android应用将崩溃,给出NumberFormatException

答案 1 :(得分:0)

要将值存储在数组中,请使用 ArrayList

function divisors(integer) {

var result = [];
for(let i = 2; i < integer; i++) {
  if(integer % i == 0) {
    result.push(i)
  }
}
 return result;
};

console.log(divisors(12));

每次要存储一个int值时,请使用:

filter()

在您的情况下,将int值替换为const divisors = num => [...Array(num)] .map((x,i) => i) .filter(x => num % x === 0).slice(1) console.log(divisors(12));

对于求和过程:使用如下简单的迭代数组

ArrayList<Integer> myList = new ArrayList<Integer>();