代码-JAVA写着写着就懵了,数组怎么删除里面的元素呢

问题描述

JAVA写着写着就懵了,数组怎么删除里面的元素呢

不能删除或者说赋值为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里面对那几个常用的数据结构的实现,一来可以看看大神的代码是怎么写的,二来对于深刻了解数据结构很有帮助!

解决方案二:

可以用repalce替换掉,用空来替换

时间: 2024-08-24 20:08:51

代码-JAVA写着写着就懵了,数组怎么删除里面的元素呢的相关文章

JavaScript删除指定子元素代码实例_javascript技巧

原生javascript删除指定子元素代码实例: 本章节介绍一下如何利用原生javascript实现删除指定子元素. 大家都知道使用jquery实现此功能更为方便,不过使用原生的javascript也不麻烦,下面做一下介绍. 关于jquery如何实现此功能可以参阅jquery删除指定子元素代码实例一章节. 代码实例: 复制代码 代码如下: <!DOCTYPE HTML> <html> <meta charset="utf-8"> <title&

java也能写出点点算法-像C++一样去优化核心并发的代码例子1

java其实更多用来写业务代码,代码写得好不好,关键看抽象能力如何,不过如果你要用java写很核心的插件和高并发的片段,那么可能还是需要注意一些写法,那种写法可能会更好,才能使得并发量提高,而且更少的使用CPU和内存:我最近在一段采集系统访问的java代码,通过过滤器切入到应用中,遇到的一些小细节的调整,感觉还有点意思,以下为收集信息中碰到的两个需要判定的地方(对java优化没有任何要求的,本文纯属扯淡,呵呵): 原始代码片段1(用于判定是否为静态资源): if(servletPath == n

代码-java中怎么引用自己写的函数

问题描述 java中怎么引用自己写的函数 我是一个java新手,写了一段代码,有关:摄氏度和华氏度之间的互相转化 package method; import method.HuaShe; public class TestCToFandFToC { public static void main(String[] args){ System.out.println("摄氏 华氏 华氏 摄氏"); for(int i = 1;i <= 10;i++){ double she1 =

源代码-按书上写了一段代码java异常处理,不知道为什么不能运行,求大神指教

问题描述 按书上写了一段代码java异常处理,不知道为什么不能运行,求大神指教 源代码如下: package com.Sixping.Ncre; import java.io.*; public class ExceptionCatch { public static void main(String[] args) { try { FileNotFoundException fis = new FileNotFoundException("text"); System.out.pri

java方式来写js程序(demo)

js|程序  javascript应用是非常广泛的,而且功能特别强大,但是javascript程序就是没有java代码好看,这点是好无疑问的,不过因为js应用太广了,在web应用中几乎离不开它,我初学js,总想像写java程序那样写js. 一个是过滤相同的元素:<script src="core.js"></script><script src="collection.js"></script><script&g

链表自底向上的归并实现 java 该怎么写?

问题描述 链表自底向上的归并实现 java 该怎么写? 4C 归并两个链表已经写好了,就是链表的自底向上的问题,该怎么不断扩大范围,没思路,网上的都是自顶向下的代码求大神 写出关键代码,java的 谢谢 解决方案 自底向上归并,链表 解决方案二: http://blog.csdn.net/logiciel/article/details/5567965

问题-刚开始学习java ,自己写了一个聊天小程序,没报错但是有毛病,希望能帮忙问一下

问题描述 刚开始学习java ,自己写了一个聊天小程序,没报错但是有毛病,希望能帮忙问一下 刚开始学习java ,自己写了一个聊天小程序,没有报任何错误.测试时打开3个聊天小窗口 A,B,C,在A中输入文字,只在B中显示出来了,而且显示出了三句相同语句.查了好几个小时都没有查出来,希望高手能帮帮忙,看看是怎么回事,并且告诉我是通过什么方法找出来的. 以下是客户端和服务器端代码 客户端: import java.awt.*; import java.awt.event.*; import java

当程序员说“这代码写的可真烂”,他们的意思是“这烂代码不是我写的”。而当他们说这段代码有些“小问题”时,很可能这代码是他们自己写的

英文原文:What Programmers Say vs. What They Mean 你是否听到过同事说"这段代码不言自明"?你的同事的这句话的实际意思是这段代码不需要写注释. 你也许注意到了,很多时候,程序员所说的话的字面意思和其真实的意思是完全不同的.不用惊异,下面你将很快知道这些暧昧的短语和其深层次的意思都是什么. 最近 Imgur 上出现了一张图片,里面列举的程序员的一些专业术语和其含义,它能很好的帮助你理解这些话的真实意思.这里是对其中的精华进行的总结. 典型的程序员之间

Java中读/写文件文本文件的示例

1.FileReader----读取字符流 2.FileWriter----写入字符流 3.BufferedReader----缓冲指定文件的输入 该类的方法有: void close()         关闭该流.  void mark(int readAheadLimit)         标记流中的当前位置.  boolean markSupported()         判断此流是否支持 mark() 操作(它一定支持) int read()         读取单个字符.  int