ArrayList Java String remove不删除

时间:2014-09-15 19:53:12

标签: java android arraylist

我正在使用对象的Arraylist。 虽然我已经成功地删除了Arraylist中的值,但它们是数字。

我遇到了字符串时从arraylist中删除的问题 这是一个例子:

public class ArrayListDemo {

 public static void main(String[] args) {

    // create an empty array list with an initial capacity
    ArrayList<Namer> arrlist = new ArrayList<Namer>( );

    // use add() method to add values in the list
    arrlist.add(new Namer("1","A","G"));
    arrlist.add(new Namer("2","E","G"));
    arrlist.add(new Namer("3","F","G"));

    System.out.println("Size of list: " + arrlist.size());

    // let us print all the values available in list
    for (Namer value : arrlist) {
      System.out.println("age = " + value.age);
     }  

    arrlist.remove("3");

    System.out.println("Now, Size of list: " + arrlist.size());

     for (Namer value : arrlist) {
      System.out.println("age = " + value.age); //System.out.println("Value = " + value);
    }  
  }
}   

并且运行它的结果证明它没有删除特定行 我需要删除if是否使用String并且不能使用数字作为&#34; Key&#34;

Size of list: 3
age = 1
age = 2
age = 3

Now, Size of list: 3
age = 1
age = 2
age = 3

我可以使用String来删除它吗?

如果有帮助

这是arrayList

的对象
public class Namer
{
    // instance variables - replace the example below with your own
    public String age;
    public String name;

    public String L_name;


    public Namer(String a, String na , String Lname)
    {
        // initialise instance variables
         age =a;
         name=na;
         L_name=Lname;
   }

}

3 个答案:

答案 0 :(得分:6)

Namer中有ArrayList个对象,而不是String。当您致电remove("3")时,ArrayList会在true上调用equals时查找返回"3"的对象。当然,没有String会将equals与任何Namer进行比较。

您必须自己与name字段进行比较,并删除相应的项目。这可以使用Iterator及其remove方法完成。

答案 1 :(得分:2)

你必须使用对象或索引删除,你没有使用... 试试这段代码:

arrlist.remove(2);

// create an empty array list with an initial capacity
ArrayList<Namer> arrlist = new ArrayList<Namer>( );

Namer namer1= new Namer("1","A","G");
Namer namer2= new Namer("2","E","G");
Namer namer3= new Namer("3","F","G");

// use add() method to add values in the list
arrlist.add(namer1);
arrlist.add(namer2);
arrlist.add(namer3);

arrlist.remove(namer3);

答案 2 :(得分:0)

方法arrlist.remove(idx)将要从数组中删除的元素的(整数)索引作为参数。 ArrayLists没有“钥匙”这样的东西。

您可能想要使用java.util.Map<Integer,Namer>