当前位置: 代码迷 >> Java相关 >> 如何删除字符串数组中的数组元素
  详细解决方案

如何删除字符串数组中的数组元素

热度:1069   发布时间:2013-09-15 21:04:43.0
如何删除字符串数组中的数组元素
设计的 一个课程类,向各位高手请教如何删除字符串数组中的某个字符串元素?
class Course{
    private String courseName;    //课程名称
    private String[] students = new String[100];//存储该课程学生的数组
    private int numberOfStudents = 0;//学生的个数
   
    public Course(String courseName){
        this.courseName = courseName;
    }
    public String getCourseName(){ //得到课程名称
        return courseName;
    }
    public void addStudent(String student){ //增加新同学
        students[numberOfStudents] = student;
        numberOfStudents++;
    }
    public String[] getStudents(){
        return students;
    }
    public int getNumberOfStudents(){ //返回学生个数
        return numberOfStudents;
    }
    public void dropStudent(String student){ //删除某个学生
   
    }
}
搜索更多相关的解决方案: return  public  private  如何  字符串  

----------------解决方案--------------------------------------------------------
程序代码:
package sort.CollectionsSort;
/**
* 设计的 一个课程类,向各位高手请教如何删除字符串数组中的某个字符串元素?
*
@author kaizhou.sun
*
*/
class Course{
    private String courseName;    //课程名称
    private String[] students = new String[100];//存储该课程学生的数组
    private int numberOfStudents = 0;//学生的个数
   
    public Course(){};
   
    public void setNumberOfStudents(int numberOfStudents) {
        this.numberOfStudents = numberOfStudents;
    }

    public Course(String courseName){
        this.courseName = courseName;
    }
    public String getCourseName(){ //得到课程名称
        return courseName;
    }
    public String[] addStudent(String string){ //增加新同学
        this.setNumberOfStudents(numberOfStudents+1);
        students[this.getNumberOfStudents()-1] = string;
//        students[numberOfStudents] = student;
        return students;
    }
    public String[] getStudents(){
        return students;
    }
    public int getNumberOfStudents(){ //返回学生个数
        return numberOfStudents;
    }
    public String[] dropStudent(String student){ //删除某个学生
        for(int i=0;i<students.length;i++){//这里也可以用遍历或迭代,但是如果数据量大的话不建议,哪些更耗内存和cpu
            if(student.equals(students[i])){//找到要删除的学生
                numberOfStudents--;            //减少学生个数
                students[i]=null;                //删除数组中对应的学生
                return students;
            }
        }
        System.out.println("没有找到要删除的学生");
        return students;
    }
    public static void main(String[] args){
        Course c = new Course();
        c.addStudent("张三");
        c.addStudent("李四");
        c.addStudent("王五");
        c.dropStudent("张三");
        c.dropStudent("赵六");
        for(String s : c.getStudents()){ //这里只是测试下所以用遍历,一般不建议用
                System.out.println(s);            //打印学生
        }
    }
}

把你的代码改了下,你增加学生那个应该行不通,所以那个方法也改了,现在可以用了,不过还是不建议你将学生数组先分配空间,那样浪费了,你可以设计增加一个学生就多一个空间,删除一个就少一个,这样更好,你运行看下
----------------解决方案--------------------------------------------------------
如果你要程序更安全,还要注意方法的作用域,是用public还是private等等,
另外如果要数据到其他地方要用,你还要实现数据持久化。
或者你可以将这个类作为一个接口然后写一个实现类,等等……&*(
----------------解决方案--------------------------------------------------------
回复 3楼 java小蚂蚁
我是初学java的,我还想要请教一下我该如何学习java API或者如何查阅API文档?
----------------解决方案--------------------------------------------------------
  相关解决方案