如何将数组从数组列表设置为另一个数组

时间:2017-02-28 14:08:05

标签: java arrays arraylist data-structures collections

我在Android应用程序中工作,我正在寻找如何在for循环后显示数组列表中的结果,我想在转换函数之后在另一个列表视图中设置每个值(heure,minute ...) BCD to Integer)我和我一起工作过。谢谢您的帮助!!

Integer[] array = {heure, minute, seconde, jour, mois, year};
    ArrayList<Integer> list = new ArrayList<>();
    /*Collections.addAll(list, array);*/
    for (int value : list) {
        temp = value;
        temp >>= 4;
        result = temp * 10;
        temp = value & 0b00001111;
        result += temp;
        this.total= result;
        list.add(this.total);
    }
    tvGetdata.setText(list.toString());

2 个答案:

答案 0 :(得分:1)

您在空列表中使用foreach。 所以你的代码会忽略它。 尝试使用你的阵列。

Integer[] array = {heure, minute, seconde, jour, mois, year};
ArrayList<Integer> list = new ArrayList<>();
for (int value : array) {
    temp = value;
    temp >>= 4;
    result = temp * 10;
    temp = value & 0b00001111;
    result += temp;
    this.total= result;
    list.add(this.total);
}
tvGetdata.setText(list.toString());

答案 1 :(得分:0)

你在这里滥用了两种数据结构。

  • Array是一个固定长度的项目列表

    • 只要您有一组固定的值要处理
    • ,就使用它
  • List是一个项目列表(至少在标准实现中)总是试图使其容量适应项目数

    • 只要您需要比Array
    • 更动态的内容,就可以使用它

因此,总之,通过将这些用法转换为结构,您将获得更好的结果(您将在下面找到原因)。

// we exactly know our initial input, so we can use an Array here
Integer[] array = {heure, minute, seconde, jour, mois, year};

// we don't know how many items will go in here, so we use a List for now
ArrayList<Integer> list = new ArrayList<>();

// you can loop over an Array just as over a List
for (int value : array) {
    // TODO do your calculations and save them in this.result

    // the ArrayList provides this neat utility to add an element
    // it will automatically increase its capacity, if required
    list.add(this.result);
}
tvGetdata.setText(list.toString());

当然,您可以将array变量替换为另一个List,并将元素从List设置为List。基本结构是一样的。