Java二维数组如何删除一整行信息

用键盘输入n(n小于等于20)个学生的信息,包括身高和体重,将其存入一个n*2的二维数组中。。。要求输入数字a,就能删除所有第a个学生的信息。。如何才能做到。。我是新手。。请大虾们帮帮忙

这个其实不难做的。
你看比如说存放学生信息的数组名是StuInfo,有n个学生不就相当于有n行个每行维度=2的数组吗?
由此该数组可以定义为StuInfo[20][2];最多可以存放20个学生的身高和体重2个信息。要删除x序列的学生信息,相当于删除StuInfo[x][0]和StuInfo[x][1]的值,直接给它们赋空值就可以了。
代码如下:
import java.util.*;
public class StuInfomation
{
public static void main(String[] args)
{
int[20][2] StuInfo;//或者这样写 int StuInfo[20][2];
int id=0;//用来输入要删除的学生的序号
System.out.println("输入学生信息到数组和删除学生信息的例子");
Scanner read = new Scanner(System.in);
int n=0;
for(n=0;n<20;n++)
{
System.out.println("请输入第" + n + "位学生的信息:");
System.out.print("身高="); //第n位学生的身高信息的输入
StuInfo[n][0]=read.nextInt();
System.out.print("体重=");//第n位学生的体重信息的输入
StuInfo[n][1]=read.nextInt();

}
System.out.println("你已经输入了20位学生的信息!");
loops:
System.out.println("请输入你要删除的学生的序号:");

id=read.nextInt();
if(id<0 || id>19)
{System.out.println("对不起,你输入的序号是无效的,请重新输入!"); goto loops} //使用goto语句跳转到loops行执行
else
{
//输入的序号是有效的。
System.out.println("=====你将要删除" + id + "位的学生信息:");
System.out.println("身高=" + StuInfo[id][0]);
System.out.println("体重=" + StuInfo[id][1]);
System.out.print("确定要删除?yes=1,no=0 _");
int yesno=read.nextInt()
if (yesno=1)
{
StuInfo[id][0]=0;//清除某位学生的身高信息记录
StuInfo[id][1]=0;//清除某位学生的体重信息记录
System.out.println("操作成功!...");
}
}
}
}

参考资料:code by http://hi.baidu.com/kejisoft

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-29

数组是在计算机中的在内存中开辟了一块连续的存储空间。是不支持动态改变数据占用的空间大小的。自从数组创建以后,那么其大小都已经被确定了。也就是说是不能够删除二维数组中的一整行信息,就相当于不能删除一维数组当中的某一个元素 一样。虽然数组的长度不能在创建以后被修改,但是里面的内容是可以更改的。比如我不想要某一行的数据,我就可以把这一行数据置为null;如果是整数可以将这行数据都置为0;如果是字符串可以置为null或者空字符串等等。


如果想实现二维数组可以删除一行数据的效果,可以通过以下方式来实现(为了测试方便,我假定数组存储的是整形数据):

List<Integer[]> dataList=  new ArrayList<Integer[]>();

通过上面的List添加每一行数据,如果不要某一行数据了,那么可以通过List的

remove(index|object);

来删除指定的一个元素(这里一个数据就相当于一行数据,因为这里的一个数据就是一个整形数组);

本回答被网友采纳
第2个回答  2011-10-02
2个方法
一个就是用方法返回一个(n-1)*2的数组,这样数组的长度是n-1
还有就是从第a个开始,后面的元素挨个向前挪一位
就是
for(int i=a-1;i<数组.length-2;i++){
数组[i][0]=数组[i+1][0];
数组[i][1]=数组[i+1][1];
}
数组[数组.length][0]=0;
数组[数组.length][1]=0;

不过最好是定义一个学生类Student,里面包含身高和体重属性
就可以用系统的数组ArrayList<Student> stu =new ArrayList<Student>();
这个是定义动态数组,可以用remove(int index)方法来直接实现删除操作,添加元素用add()本回答被网友采纳
相似回答