首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从课程列表中移除课程对象。

从课程列表中移除课程对象。
EN

Code Review用户
提问于 2017-03-28 16:40:03
回答 1查看 185关注 0票数 1

我已经实现了在12中描述的这两个方法。我欣赏任何一种改进我的方法实现的评论。

  1. 实现方法toStringtoString返回列表的字符串表示形式。
  2. 实现方法removeremove从列表中删除给定的课程。如果课程不在列表中,则不会更新该列表。

执行代码时,将生成以下打印输出:<10、Algebra> <20、Algorithms> <30、Electronics> <40、Physics> <50、实现方法调用后的Programming>。<10 Algebra> <20 Algorithms> <50 Programming>

代码语言:javascript
复制
public class CourseList {

    private static final int CAPACITY = 5;
    // courses
    private Course[] courses;
    // the number of courses
    private int courseCount;

    public CourseList() {
        courses = new Course[CAPACITY];
        courseCount = 0;
    }

    // add adds a course to the list
    public void add(Course course) {
        courses[courseCount] = course;
        courseCount++;
    }
    public void remove (Course course) {
        int courseIndex = -1;
        for (int i = 1; i < courseCount; i++)
            if (courses[i].equals(course)) {
                courseIndex = i;
                break;
            }
        if (courseIndex != -1) {
            for (int i = courseIndex; i < courseCount - 1; i++)
                courses[i] = courses[i + 1];
            courses[courseCount - 1] = null;
        }
    }

    public String toString(){
        StringBuilder sb = new StringBuilder();
        for(int i = 0; i< courses.length; i++){
            sb.append(courses[i]);
            sb.append("\n");
        }
        return sb.toString();
    }

    public static void main(String[] args) {
        CourseList list = new CourseList();
        list.add(new Course(10, "Algebra"));
        list.add(new Course(20, "Algorithms"));
        list.add(new Course(30, "Electronics"));
        list.add(new Course(40, "Physics"));
        list.add(new Course(50, "Programming"));
        System.out.println(list);
        list.remove(new Course(40, "Physics"));
        list.remove(new Course(30, "Electronics"));
        System.out.println(list);

    }
}
EN

回答 1

Code Review用户

发布于 2017-03-28 17:14:17

从1开始,移除元素时将跳过第一个元素。如果不打算对新数组执行任何操作,Remove不应该创建新数组。

如果要修改代码以更正不必要的新数组,还应该修复从索引1开始的问题。

票数 1
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/159151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档