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
}
}
问题内容: 我有一堆索引,我想从中删除这些索引中的元素。我无法做一个简单的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