有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在安卓中从字符串数组中删除元素

我正在做一个简单的安卓应用程序。在这里,我使用以下代码从数组中删除一个元素

 arr_fav = {"1","2","3"};
 for(int i= 0;i<arr_fav.length;i++)
 {
     if(current_id == Integer.parseInt(arr_fav[i]))
     {
        arr_fav[1] = null;
     } }

通过这样做,我得到了arr_fav={“1”,null,“3”}这样的数组。但是我想要像arr_fav={“1”,“3”}。如何删除元素。我对安卓的开发还不熟悉。请帮我解决这个问题


共 (6) 个答案

  1. # 1 楼答案

    你没有

    无法调整数组的大小

    您需要创建一个新的(较小的)数组,并将希望保留的元素复制到其中

    更好的办法是使用动态的List实现。例如ArrayList<Integer>

  2. # 2 楼答案

    Java中的数组不是动态的,可以使用ArrayList

  3. # 3 楼答案

    最好使用arraylist

    arr_fav = {"1","2","3"};
    List<String> numlist = new ArrayList<String>();
    for(int i= 0;i<arr_fav.length;i++)
    {
     if(current_id == Integer.parseInt(arr_fav[i]))
     {
       // No operation here 
     }
     else
     {
         numlist.add(arr_fav[i]);
     }
    }
     arr_fav = numlist .toArray(new String[numlist .size()]);
    
  4. # 4 楼答案

    这就行了

    List x = new ArrayList(Arrays.asList(arr_fav));
    x.remove(String.valueOf(current_id));
    arr_fav = x.toArray();
    
  5. # 5 楼答案

    可以将所需的数组元素复制到新数组中

     j = 0;
     for(int i= 0;i<arr_fav.length;i++)
      {
       if(current_id != Integer.parseInt(arr_fav[i]))
     {
        arr_new[j++] = arr_fav[i];
     } }
    
  6. # 6 楼答案

    使用ArrayList而不是数组。它支持删除任何元素、动态大小等功能

    ArrayList<String> arr_fav_list = new ArrayList<String>();
    arr_fav_list.addAll(arr_fav);
    arr_fav_list.remove(1);