当前位置: 首页 > 知识库问答 >
问题:

向ArrayList添加元素和从ArrayList删除元素的实现

公冶兴文
2023-03-14
private int n=0; //initial size of the array list 
private MyArrayListElement<T> firstElement;//the first element of the array list 
//Gets the element at index i 
private MyArrayListElement<T> getElement(int i){ 
    if(firstElement == null) return null; 
    int c = 0; 
    MyArrayListElement<T> x=firstElement; 
    while(x!=null){ 
        if(c==i) return x; 
        x=x.getNext(); 
        c++; 
    } 
    return null; 
} 
//Gets the element value at index i 
public T get(int i){ 
    MyArrayListElement<T> element = getElement(i); 
    if(element!=null) return element.getValue(); 
    return null; 
} 
//Removes the element at index i 
public void remove(int i){ 
    MyArrayListElement<T> x= getElement(i); 
    if(x==null) return; 
    if(x.getPrevious()!=null){ 
        x.getPrevious().setNext(x.getNext()); 
    } 
    if(x.getNext()!=null){ 
        x.getNext().setPrevious(x.getPrevious()); 
    } 
    if(x==firstElement){ 
        firstElement = x.getNext(); 
    } 
    n--; // decrement the size of the array list 
} 
//Adds a new element to the end 
public void add(T t){ 
    MyArrayListElement<T> element = new MyArrayListElement<T>(t); 
    if(firstElement == null){ 
        firstElement = element; 
    }else{ 
        MyArrayListElement<T> lastElement=getElement(n-1); //Get the last element 
        lastElement.setNext(element); //Add new element to the end 
        element.setPrevious(lastElement);//Update previous element 
    } 
    n++; //increment the size 
} 
//Returns the number of elements in the array list 
public int size(){ 
    return n; 
} 
public String toString(){ 
    String str ="{"; 
    for(int i=0;i<n;i++){ 
        str+=get(i); 
        if(i<n-1){ 
            str+=","; 
        } 
    } 
    str+="}"; 
    return str; 
} 

public void add(int index, T t) {

}

public void clear(){

}
private T value; // This is the data stored in this element 
private MyArrayListElement <T> next; // the next element 
private MyArrayListElement <T> previous; // the previous element 

//Constructor gets an object of type <T> as an argument 
public MyArrayListElement(T t) { 
    value = t; //stores the object in the instance variable "value" 
} 
public void setValue(T val){ 
    value = val; //change the stored object 
} 
public void setNext(MyArrayListElement <T> n){ 
    next = n; //set the link to the next element 
} 
public MyArrayListElement<T> getNext() { 
    return next; //get the next element 
} 
public T getValue(){ 
    return value; //get the data stored in this element 
} 
public MyArrayListElement <T> getPrevious() { 
    return previous; //get the previous element 
} 
public void setPrevious(MyArrayListElement <T> previous) { 
    this.previous = previous; //set the link to the previous element 
} 

}

共有1个答案

魏浩广
2023-03-14

我会用概念的方式解释你...

创建一个应该为空的arraylist的克隆->YourArray。clear()是执行此操作所需的函数。

绕圈

 类似资料:
  • 问题内容: 我有一堆索引,我想从中删除这些索引中的元素。我无法做一个简单的s 序列,因为每次移除后元素都会移动。我该如何解决? 问题答案: 按降序对索引进行排序,然后将其一一删除。如果这样做,删除将不会影响以后要删除的任何索引。 如何对它们进行排序将取决于您用来存储索引的集合。如果是列表,则可以执行以下操作: 编辑 @aioobe找到了我找不到的助手。除了上述内容,您还可以使用

  • 我正在尝试使用以下方法将元素添加到名为activList的ArrayList中: 但是我在运行代码时在这一行得到了一个NullPointerExcema: 我确实读过这一页:什么是NullPointerException,如何修复它?(请不要重复报告) 我所理解的是,我得到错误是因为我的ArrayList没有任何元素。但是,我尝试在创建后立即添加一个,如下所示: 但我得到了一个错误:“意外标记:(

  • 所以我有一个看起来像这样的文件: 其中我希望第一列是hashmap的键(e1,或e2,或e3),值是一个名为“ratings”的ArrayList,我希望第二列的值(int)位于ArrayList的第n个索引中。 总而言之:文件第一列中的每个字符串在hashmap(userList)中都有自己的键,程序将检查它是否有这个键,如果没有键,它将创建一个新的arraylist作为这个键的值。arrayL

  • 问题内容: 我正在使用,我想删除所有出现的特定元素。 它仅删除第一次出现的事件。但是我希望所有列表都被删除,因为我希望列表仅保留值“ second”。通过谷歌搜索发现,可以通过创建新列表并调用来实现。但是是否可以在不创建新列表的情况下删除所有出现的内容,或者是否有可用的API来实现它? 问题答案:

  • 问题内容: 我有这个android代码,它从服务器中获取一个JSON并从该JSON填充一个ArrayList,我在onresponse空隙内检查了ArrayList“ meals”的大小,它给了我1,但是当我在StringRequest对象后对其进行检查时,我得到了0个项目。进餐在全局范围内定义,并在oncreateview函数内部进行初始化代码: 问题答案: 这里的问题是关于了解任务如何工作的。

  • 问题内容: 我是Groovy的新手,尽管阅读了许多有关此的文章和问题,但我仍然不清楚发生了什么。到目前为止,据我了解,当您在Groovy中创建新数组时,底层类型是Java ArrayList。这意味着它应该可调整大小,您应该能够将其初始化为空,然后通过add方法动态添加元素,如下所示: 编译,但是在运行时失败:方法的无签名:[LMyType; .add()适用于参数类型:(MyType)值:[My