很多朋友对于arraylist删除元素和ArrayList在java中的用法不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
一、c++怎么删除array里面的某个元素
array也就是数组,要删除数组中的某一个元素,由于数组的连续性,不可能直接删除掉对应的存储空间,所以唯一的方法就是用数组后续元素覆盖要删除的元素。即从要删除元素下一个元素开始,一直到数组结束,每个元素均向前移动一位。
以下是删除一个数组中某个元素的模板函数:
intremove_from_array(T*a,intn,int&l)//从数组a中删除第n个元素。l为数组原始长度,引用传参,所以可以将新的长度带回主调函数。如果成功,函数返回0,否则函数返回-1。
if(a==NULL||n<0||l<0||n>=l)return-1;
a[i]=a[i+1];//依次用后续一个元素覆盖前一个元素,直到数组尾。
二、在Java中怎么修改ArrayList()中元素的值
ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处:
(2)实现了ICollection和IList接口
2、ArrayLis的创建以及增删改查方法:
(1)ArrayList的创建以及元素的添加:
ArrayList<变量名>=newArrayList();//()中也可传参。
注释:上面是创建一个空的ArrayList列表。当我们想往列表中传递元素的时候是通过.add()的方法来进行赋值的。看一下下面的案例。另外要想输出出列表中的元素的话要通过for循环遍历:
注释:上面是创建一个空的ArrayList列表。当我们想往列表中传递元素的时候是通过.add()的方法来进行赋值的。看一下下面的案例。另外要想输出出列表中的元素的话要通过for循环遍历:
publicstaticvoidmain(String[]args){
for(inti=0;i<lis.size();i++){
Stringresult=(String)lis.get(i);
注释:变量名.remove(int Index);//通过.remove(int Index)方法来进行删除。
这里直接传入要删除元素的下标即可。当然也可以直接传入值进行删除。如果你觉得用下边的方式比较麻烦那可以直接输入要删除项的值。
publicstaticvoidmain(String[]args){
System.out.println("---------------------------------");
System.out.println("<ArrayList原列表元素>:");
for(inti=0;i<lis.size();i++){
Stringresult=(String)lis.get(i);
System.out.println("---------------------------------");
System.out.println("<删除元素后的ArrayList列表>:");
for(inti=0;i<lis.size();i++){
Stringresult=(String)lis.get(i);
System.out.println("---------------------------------");
index是从0开始起始的因此1代表第2个元素。因此删除的是tom这个元素。
---------------------------------
<删除元素后的ArrayList列表>:
---------------------------------
(3)ArrayList中元素的修改注释:
ArrayList方法中有一个.set方法(变量.set(index, element);)。
通过这个方法可以修改列表中的值。(index指定下标,element指定要修改后元素的值)。一起来看一下下面的示例:
publicstaticvoidmain(String[]args){
System.out.println("---------------------------------");
System.out.println("<ArrayList原列表元素>:");
for(inti=0;i<lis.size();i++){
Stringresult=(String)lis.get(i);
System.out.println("---------------------------------");
System.out.println("<修改后的ArrayList列表>:");
for(inti=0;i<lis.size();i++){
Stringresult=(String)lis.get(i);
System.out.println("---------------------------------");
通过下面的结果可以看出第3个下标中的值已经被改变了。本来是jack现在更改成了lucy。
---------------------------------
<修改后的ArrayList列表>:
---------------------------------
注释:.contains()是用来判断一个元素是否包含在另一个元素中的。
所以这里是判断查找的元素是否包含在列表中。返回值方面我直接用的是打印的方法。也可以通过boolean,return的方式返回。
publicstaticvoidmain(String[]args){
System.out.println("包含此元素!");
System.out.println("该元素不存在!");
返回结果参照代码。找到了就打印“包含此元素,没找到就显示元素不存在。
publicstaticvoidmain(String[]args){
for(inti=0;i<list.size();i++){
Stringresult=(String)list.get(i);
System.out.println("+++++++++++++++++++++++++++++++++++++");
ArrayListlist1=newArrayList();
for(inti=0;i<list.size();i++){
Stringres=(String)list.get(i);
System.out.println("没找到该元素!");
因为列表中中包含"kevin"这个元素所以返回值为该元素。如果列表中没有该元素返回值为“没有找到该元素!”。
注意事项:我是重新设定了一个新空ArrayList(list1)。目的就是为了如果找到该值把这个值直接放到新的ArrayList中。另外if,else用了2次break。就是只要找到或者没找到就退出的意思。如果不这么写那么for循环每找一次结果就会打印一次,这显然是不必要的。
三、java:ArrayList能一次删除多个元素吗
1、是可以的。ArrayList是实现了List接口,而List的底层实现是数组,提供了以下两个方法:
2、list.remove(index);移除单个元素;
3、list.removeAll(c);移除多个元素,而参数c也要求是一个集合。
4、在第二个方法中,如果c中的元素和list中的元素相等,那么list就将其移除。那么怎么判断c中的元素和list中的元素相等呢?当然如果我创造一个元素,分别调用add(e)的方法将其添加到list和c中,那么它们是肯定相等的。但是如果不是这样,那么集合会根据元素的
5、public boolean equals(Object obj);这个方法来判断两个元素是否相等。例如我们创建一个类City:
6、 public City(int id,String cityname){
7、 public static void main(String[] args){
8、 List<City> list= new ArrayList<City>();
9、 list.add(new City(1,"guangzhou"));
10、 list.add(new City(2,"shanghai"));
11、 list.add(new City(3,"beijing"));
12、 List<City> subList= new ArrayList<City>();
13、 subList.add(new City(1,"guangzhou"));
14、 subList.add(new City(2,"beijing"));
15、 System.out.println(list.removeAll(subList));//输出结果是false;
16、 System.out.println(list.size());//输出结果是3;
17、 public City(int id,String cityname){
18、 public boolean equals(Object obj){
19、 return cityname.equals(city.cityname);
20、 public static void main(String[] args){
21、 List<City> list= new ArrayList<City>();
22、 list.add(new City(1,"guangzhou"));
23、 list.add(new City(2,"shanghai"));
24、 list.add(new City(3,"beijing"));
25、 List<City> subList= new ArrayList<City>();
26、 subList.add(new City(1,"guangzhou"));
27、 subList.add(new City(2,"beijing"));
28、 System.out.println(list.removeAll(subList));//输出结果是true;
29、 System.out.println(list.size());//输出结果是1;
30、其中的原理和判断set集合的元素是否重复是一样的。你应该明白了吧?
四、java 怎么删除List中的指定元素
1、从list中删除指定元素可以使用remove方法来实现:
2、for(inti=0;i<al.size();i++){
3、}
在代码中,删除元素后,需要把下标减一。这是因为在每次删除元素后,ArrayList会将后面部分的元素依次往上挪一个位置(就是copy),所以,下一个需要访问的下标还是当前下标,所以必须得减一才能把所有元素都遍历完。
4、在代码中,删除元素后,需要把下标减一。这是因为在每次删除元素后,ArrayList会将后面部分的元素依次往上挪一个位置(就是copy),所以,下一个需要访问的下标还是当前下标,所以必须得减一才能把所有元素都遍历完。
五、在JAVA中如何从数组中删除一个元素
package com.yiibai;import java.util.ArrayList;public class RemoveArrayElement{ public static void main(String[] args){
ArrayList objArray= new ArrayList();
objArray.add(0,"0th element");
objArray.add(1,"1st element")
objArray.add(2,"2nd element");
System.out.println("Array before removing an element"+ objArray);
objArray.remove("0th element");
System.out.println("Array after removing an element"+ objArray);}}
在Java语言中,具有两大类数据类型;首先是基础数据类型,另外还有的引用类型。Java中有一种特殊的数组引用类型,它具有以下特性:
1、java数组本身来说是一个引用类型,定义以及初始化之后数组的长度不再改变。
2、java数组不变是说由array variable所指向的内存中的数组不会发生变化,而该 array variable可以灵活的指向别的存在于堆内存的其他数组。
由以上特性我们可以推测出想要删除原始数组中的特定元素不能简单的实现,以下方法是当输入的数组元素不重复时删除特定数组的简单实现:
public void setArr(int[] arrList){
public int[] delete(int target){
int[] middleArr= new int[arr.length];
resultArr= new int[ arr.length ];
resultArr= new int[arr.length- numOfTarget];
for(int j= 0;j< middleArr.length;j++){
OK,关于arraylist删除元素和ArrayList在java中的用法的内容到此结束了,希望对大家有所帮助。