首页编程arraylistremove 关于java里ArrayList类的remove(index)方法

arraylistremove 关于java里ArrayList类的remove(index)方法

编程之家2023-11-0845次浏览

亲爱的读者们,你是否对arraylistremove和关于java里ArrayList类的remove(index)方法的相关问题感到困惑?别担心,今天我将为你解答这些问题,让你对此有更清晰的认识。

arraylistremove 关于java里ArrayList类的remove(index)方法

java中使用ArrayList如何修改里面的内容.

java里增强for循环【for(String a: arrayList)】里面可以修改数据,但是不能删除数据,如下例子:

<pre t="code" l="java">修改集合:

import java.util.ArrayList;

import java.util.List;

public class TestA{

arraylistremove 关于java里ArrayList类的remove(index)方法

public static void main(String[] args){

//集合

List<String> arrayList=new ArrayList<String>();

//存放元素

arrayList.add("hello");

arrayList.add("ninghao");

arraylistremove 关于java里ArrayList类的remove(index)方法

arrayList.add("bye");

//集合标量

int index=0;

//遍历集合

for(String a:arrayList){

//输出集合对象

System.out.println(a);

//修改集合对象

arrayList.set(index,"hi");

//标量加一

index++;

}

//输出集合

System.out.println(arrayList);

}

}

结果:

hello

ninghao

bye

[hi, hi, hi]

删除集合元素:

import java.util.ArrayList;

import java.util.List;

public class TestA{

public static void main(String[] args){

//集合

List<String> arrayList=new ArrayList<String>();

//存放元素

arrayList.add("hello");

arrayList.add("ninghao");

arrayList.add("bye");

//集合标量

int index=0;

//遍历集合

for(String a:arrayList){

//输出集合对象

System.out.println(a);

//删除元素

arrayList.remove(index);

//标量加一

index++;

}

//输出集合

System.out.println(arrayList);

}

}

结果:

hello

Exception in thread"main" java.util.ConcurrentModificationException

at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)

at java.util.AbstractList$Itr.next(AbstractList.java:343)

at app.TestA.main(TestA.java:19)由以上例子可以看出,增强for循环,在循环里可以修改集合元素,但是不能删除集合元素。

关于java里ArrayList类的remove(index)方法

remove(int)用于删除ArrayList数组容器中指定位置int上的元素,并返回此元素.

Java源代码

public E remove(int index){

RangeCheck(index);

modCount++;

E oldValue= elementData[index];

//numMoved需要移动的元素个数,也就是index后面的所有的元素个数

int numMoved= size- index- 1;

//将index后面的所有元素全部往前依次移动一个位置

if(numMoved> 0)

System.arraycopy(elementData, index+1, elementData, index,

numMoved);

//经过arraycopy的移位,数组容器的最个位置被腾空,

//但是仍然持有某个对象的引用,需要把这个多余的引用置为null.

elementData[--size]= null;// Let gc do its work

return oldValue;

}

java String[]与ArrayList的互换

先说一下,使用ArrayList也只能生成有相同数据的一个新对象,然后在这上面进行数据的添加和删除等操作,而不可能对原来的数组进行数据删除操作,原来的String数组是不变的。

转换为ArrayList的代码如下(用现成的方法就行了,不用使用循环去逐个add):

String[] s={"aa","bb","cc","dd","ee"};

ArrayList<String> list= new ArrayList<String>();

list.addAll(Arrays.asList(s));

或者可以更简洁地写为一句:

ArrayList<String> list= new ArrayList<String>(Arrays.asList(s));

Java 中ArrayList<Object>如何去除其中重复的对象

去掉重复对象的方案很多,比如利用set去重等.

参考代码

importjava.util.ArrayList;

importjava.util.HashSet;

publicclassTest{

publicstaticvoidmain(String[]args){

ArrayList<Object>list=newArrayList<Object>();

list.add(8);

list.add(2);

list.add(8);

list.add(7);

list.add(6);

list.add(5);

list.add(2);

list.add(7);

System.out.println("原始集合"+list);

//方案1.不考虑list原始顺序的情况下

HashSet<Object>set=newHashSet<Object>(list);//把list作为参数放到HashSet的构造函数里,去掉重复元素

ArrayList<Object>result1=newArrayList<Object>(set);//把set作为参数放到ArrayList构造函数里

System.out.println(result1);//输出result1

//方案2考虑list的原始顺序

ArrayList<Object>result2=newArrayList<Object>();

for(inti=0;i<list.size();i++){

if(!result2.contains(list.get(i))){//如果没有重复元素,才添加进结果集合result2

result2.add(list.get(i));

}

}

System.out.println(result2);//输出result2

}

}

输出

原始集合[8,2,8,7,6,5,2,7]

[2,5,6,7,8]

[8,2,7,6,5]

非常感谢您的阅读!我们希望本文对于解决您关于arraylistremove的问题提供了一些有价值的信息。如果您还有其他疑问,我们将很乐意为您提供进一步的帮助。

本地ip查询(怎么查询电脑ip地址)多用户b2c商城系统?什么是多用户商城系统