不能刪除或者說賦值為null ,我該添加點什麼代碼進去才能實現呢,還要朝前移動一位怎麼解決
我感覺我自己基礎不行了,求大神指明一個學習方向
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名稱\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;
}
}
如果你嫌麻煩的話,可以這樣做哦!!
先把數據轉化為List,然後使用List的remove方法進行刪除,最後再使用list的toArray方法,轉化為數組。。。
如果不嫌麻煩的話,那就去復習下數據結構中的線性表。
刪除數據a[]中的一個元素,比如說i
1.判斷i是否越界
2.然後將a[i]置空
3.循環:
for(int j=i;i<a.length;i++){
讓a[j]和a[j+1]調換位置
}
然後,就OK了!
建議學數據結構的時候,可以去看看Java裡面對那幾個常用的數據結構的實現,一來可以看看大神的代碼是怎麼寫的,二來對於深刻了解數據結構很有幫助!