【问题标题】:How to set data from array list to another array如何将数组列表中的数据设置到另一个数组
【发布时间】:2017-07-19 13:14:04
【问题描述】:

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

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

【问题讨论】:

  • 您能否更具体地说明您的实际问题是什么或您遇到的问题?
  • 我想显示在另一个数组列表中转换的每个值

标签: java arrays arraylist data-structures collections


【解决方案1】:

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

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

    • 只要有一组要处理的固定值就可以使用它
  • a 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。基本结构是一样的。

【讨论】:

  • 谢谢你,但它显示空列表,没有插入任何值!
  • 它总是显示最后一个数据(年份)而不是 6 个一起显示
  • 不知道有什么问题,它对我有用。您能否展示一下您是如何实现我的示例的,例如通过编辑您的问题?
  • @D.G 你循环的是空的List,而不是填充的Array
  • @Izuro 抱歉我没明白你的意思:/
【解决方案2】:

您在一个空列表上使用了 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());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-18
    • 2013-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多