不能刪除或者說賦值為null ,我該添加點(diǎn)什么代碼進(jìn)去才能實(shí)現(xiàn)呢,還要朝前移動一位怎么解決我感覺我自己基礎(chǔ)不行了,求大神指明一個學(xué)習(xí)方向import java.util.*;import javax.swing.text.StyledEditorKit.ForegroundAction;public class dvdMgr {Scanner input=new Scanner(System.in);DVD[] dvd=new DVD[50];public void sta(){dvd[0]=new DVD();dvd[0].name="小馬哥的春天";dvd[0].state=0; dvd[1]=new DVD();
dvd[1].name="鬼媽媽";
dvd[1].state=0;
dvd[2]=new DVD();
dvd[2].name="拉斯維加斯3";
dvd[2].state=0;
}
public void add()
{
System.out.println("請輸入要添加的DVD");
String name=input.next();
for (int i = 0;i<dvd.length ; i++)
{
if(dvd[i]==null)
{
dvd[i]=new DVD();
dvd[i].name=name;
System.out.println("添加成功!");
break;
}
else if(i==dvd.length-1)
{
System.out.println("添加失敗,列表已滿");
}
}
}
/**
*
*/
public void export()
{
for (int i = 0; i < dvd.length; i++)
{
if(dvd[i]!=null)
{
System.out.println("序號\t狀態(tài)\t名稱\t借出日期\n");
System.out.println((i)+"\t"+(dvd[i].state==0?"可借\t":"已借出\t")+dvd[i].name+"\t"+dvd[i].date);
}
}
}
public boolean delete()
{
boolean index=false;
int ret=-1;
System.out.println("請輸入要刪除的DVD:");
String name=input.next();
for (int i = 0; i < dvd.length; i++)
{
if(dvd[i].name.equals(name))
{
ret=i;
index=true;
System.out.println("刪除成功DVD!");
break;
}
else
{
System.out.println("沒有找到要刪除的DVD");
}
}
return index;
}}
2 回答

一只甜甜圈
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個贊
如果你嫌麻煩的話,可以這樣做哦!!
先把數(shù)據(jù)轉(zhuǎn)化為List,然后使用List的remove方法進(jìn)行刪除,最后再使用list的toArray方法,轉(zhuǎn)化為數(shù)組。。。
如果不嫌麻煩的話,那就去復(fù)習(xí)下數(shù)據(jù)結(jié)構(gòu)中的線性表。
刪除數(shù)據(jù)a[]中的一個元素,比如說i
1.判斷i是否越界
2.然后將a[i]置空
3.循環(huán):
for(int j=i;i<a.length;i++){
讓a[j]和a[j+1]調(diào)換位置
}
然后,就OK了!
建議學(xué)數(shù)據(jù)結(jié)構(gòu)的時候,可以去看看Java里面對那幾個常用的數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn),一來可以看看大神的代碼是怎么寫的,二來對于深刻了解數(shù)據(jù)結(jié)構(gòu)很有幫助!
添加回答
舉報
0/150
提交
取消