【问题标题】:Replace ArrayList Values with new String Values用新的字符串值替换 ArrayList 值
【发布时间】:2014-01-07 07:04:04
【问题描述】:

我有一个名为 arrstatus 的数组列表,其中有一组动态存储的数值。 我必须用唯一字符串值替换这些数值。 我尝试了各种方法它似乎不起作用 我尝试了 Set 方法,没有用,

// int[] flags = new int[arrstatus_old.size()];

int [] c =  new int [arrtaskid.size()];
Toast.makeText(MyTask.this, "C:"+c, Toast.LENGTH_LONG).show(); 

     for(int j=1;j<= c.length;j++)
     {

        if(arrstatus.get(j).equals("1"))
         {
             arrstatus_old.set(j, "Saved");
         }
        else if(arrstatus.get(j).equals("2"))
        {
            arrstatus_old.set(j, "Assigned");
        }
        else if(arrstatus.get(j).equals("3"))
        {
            arrstatus_old.set(j, "Accepted");
        }
        else if(arrstatus.get(j).equals("4"))
        {
            arrstatus_old.set(j, "Rejected");
        }

     }

我没有得到 arrastutus 的大小,它说 0 因此没有值被替换, 有什么更好的办法来替换这个值吗?

【问题讨论】:

  • j&lt;= c.length 这可能会导致ArrayIndexOutOfBoundsException。
  • @ᴍarounᴍaroun - 不可能......它会(除非他在那之前得到其他例外......):P
  • 你把它改成j &lt;= c.length - 1
  • @TheLostMind 取决于最后一个索引上的ifs..
  • @Sanj FYI 数组索引从0开始

标签: java android arraylist


【解决方案1】:

您的ArrayList 存储1 即numbers 应该以String 格式存储数字。

你的 arrayList 应该像 ArrayList&lt;String&gt;

        ArrayList<String> arrstatus = new ArrayList<String>();
        arrstatus.add("1");
        arrstatus.add("2");
        arrstatus.add("3");

当您使用equals 签入arraylist 时,您将添加数字作为字符串。

if (arrstatus.get(i).equals("1")) {
    arrstatus.set(i, "Saved");
}if (arrstatus.get(i).equals("2")) {
    arrstatus.set(i, "Assigned");
}if (arrstatus.get(i).equals("3")) {
    arrstatus.set(i, "Accepted");
}

等等……

【讨论】:

  • 我有 ArrayList arrstatus = new ArrayList();并且这些值是从服务器动态存储的。
  • @sanj 问题在于您要更改的数组列表。为了更改元素,它必须包含您正在检查的元素(条件中)。
  • @JavaLearner ArrayList.add(index, element) 会将现有元素的“索引”位置向右移动。参考docs.oracle.com/javase/6/docs/api/java/util/…他想替换现有元素
  • @Jayaprasad 我已经编辑了我的答案。是写错了。请您删除您的反对票吗?
【解决方案2】:
ArrayList<String> arrstatus = new ArrayList<String>();
        arrstatus.add("1");
        arrstatus.add("2");
        arrstatus.add("3");
arrstatus.add("4");

for(int j=0;j< c.length;j++)
     {

        if(arrstatus.get(j).equals("1"))
         {
             arrstatus_old.set(j, "Saved");
         }
        else if(arrstatus.get(j).equals("2"))
        {
            arrstatus_old.set(j, "Assigned");
        }
        else if(arrstatus.get(j).equals("3"))
        {
            arrstatus_old.set(j, "Accepted");
        }
        else if(arrstatus.get(j).equals("4"))
        {
            arrstatus_old.set(j, "Rejected");
        }

     }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-30
    • 2022-12-09
    • 2015-11-28
    • 1970-01-01
    • 2013-03-24
    • 2017-07-15
    • 2023-01-05
    • 2018-04-05
    相关资源
    最近更新 更多