如何删除字符串数组中的数组元素
设计的 一个课程类,向各位高手请教如何删除字符串数组中的某个字符串元素?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){ //删除某个学生
}
}
----------------解决方案--------------------------------------------------------
程序代码:
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); //打印学生
}
}
}
/**
* 设计的 一个课程类,向各位高手请教如何删除字符串数组中的某个字符串元素?
* @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文档? ----------------解决方案--------------------------------------------------------