java中怎么删除数组中的元素?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中怎么删除数组中的元素?相关的知识,希望对你有一定的参考价值。
java中删除数组中的元素方法:
我们可以使用Apache Commons Utils 这个库的ArrayUtils类来轻易的删除数组中的元素。不过有一点需要注意,数组是在大小是固定的,这意味这我们删除元素后,并不会减少数组的大小。
所以,我们只能创建一个新的数组,然后使用System.arrayCopy()方法将剩下的元素拷贝到新的数组中。
对于对象数组,我们还可以将数组转化为List,然后使用List提供的方法来删除对象,然后再将List转换为数组。
Java的特点有:
平台无关性。平台无关性是指Java能运行于不同的平台。Java引进虚拟机原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。
安全性。Java的编程类似C++,学习过C++的读者将很快掌握Java的精髓。Java舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器,防止程序的非法访问。
面向对象。Java吸取了C++面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。
分布式。Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。
健壮性。Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自己操纵内存减少了内存出错的可能性,并且Java还提供了Null指针检测、数组边界检测、异常出口、Byte code校验等功能。
解释型。我们知道C,C++等语言,都是针对CPU芯片进行编译,生成机器代码,该代码的运行就和特定的CPU有关。Java的字节码是很接近机器码的文件,可以在提供了java虚拟机(JVM)的任何系统上被解释执行。
动态。java程序的基本组成单元就是类,有些类是自己编写的,有些是从类库中引入的,而类又是运行时动态装载的,这就使得Java可以在分部环境中动态的维护程序及分类,而不像C++那样,没档期类库升级以后,如果想让程序具有新类库提供的功能,就需要修改程序,重新编译。
java.util.ArrayList;
import
java.util.List;
import
java.util.Scanner;
public
class
Demotest
public
static
void
main(String[]
args)
System.out.println("输出一个你要删除的数组下标:");
Scanner
reader
=
new
Scanner(System.in);
int
n
=
reader.nextInt();
int
oldArr[]
=
1,
2,
3,
4,
5,
6
;
List
list
=
new
ArrayList();
for
(int
i
=
0;
i
<
oldArr.length-1;
i++)
if
(i
<
n)
list.add(new
Integer(oldArr[i]));
else
list.add(new
Integer(oldArr[i+1]));
int
newArr[]
=
new
int[list.size()];
for
(int
i
=
0;
i
<
list.size();
i++)
newArr[i]
=
((Integer)
list.get(i)).intValue();
for
(int
i
=
0;
i
<
newArr.length;
i++)
//
打印新数组
System.out.print(newArr[i]
+
"
");
运行结果:输出一个你要删除的数组下标:
3
1
2
3
5
6
在java中,怎么从一个数组中删除一个数啊
比如定义一个数组x[]=1,3,5,2,8,7,6,9
怎么把当中的5删除啊
如果用的是原生数组,删除和增加就很不方便,毕竟数组长度已经是定死了,所以你只能去新建一个新的数组来对操作的结果进行保存,但是如果其他地方又用到了这个数组,那对于被引用的旧的数组其实却是没有改变的
所以你应该使用一些类似ArrayList之类的类,对数据类型进行保存
List<Integer> arr = new ArrayList<Integer>();arr.add(1);
arr.add(2);
arr.add(3);
// 添加你想要的数据
arr.remove(1); //注意这里是移除你所想移除的下标
// 当然,remove接受的参数也可以直接是一个内容
arr.remove(Integer.valueOf(1)); 参考技术A 你可以这样试试 比如是int类型的数组,
int[] i=new int[]12312312,31231,312312
然后我要删除第二个元素的东西
i[1]=0;
我去循环便利这个数组
for(int j=0;j<i.Length;j++)
if(i[j]!=0)
//做你的需要做的操作
要是String类型的话
删除的时候就是直接修改成null,然后去判断.equals("")就行拉
其余像char什么的也差不了多少
这样的话不是真删除,但是也能达到效果 参考技术B Array没有提供这,集合类中, Collection<E>接口中set,list。。。这几个有这方法,在项目中常用也是此,比如remove(int index)就可以实现你这那,具体方法看API文档里非常详细 参考技术C java中数组长度是不可变的
要不就用ArrayList类 参考技术D http://hi.baidu.com/blucastle/blog/item/d394e53f2b0b0e3570cf6ceb.html本回答被提问者采纳
以上是关于java中怎么删除数组中的元素?的主要内容,如果未能解决你的问题,请参考以下文章