黑马程序员技术交流社区

标题: 亲,帮忙看下这个是什么情况(版主勿删) [打印本页]

作者: 坚持努力wbj    时间: 2016-8-24 09:09
标题: 亲,帮忙看下这个是什么情况(版主勿删)
在下的代码中 运行ListTest类,第二次及以后输入总会带个小尾巴,用的是搜狗输入法
如以下运行结果
有以下课程待选:[Course [id=1, name=大学英语], Course [id=1, name=高等数学], Course [id=3, name=大学语文], Course [id=4, name=大学物理], Course [id=5, name=离散数学]]
输入课程名称:
大学英语
你输入的是:大学英语
课程大学英语的索引位置:0
输入课程名称:
大学语文
你输入的是:dx大学语文
输入课程不存在
输入课程名称:


在倒数第三行原本输入的是大学英语却多了个dx





[Java] 纯文本查看 复制代码
package com.imooc.colection;

import java.util.HashSet;
import java.util.Set;

/**
* 学生类
* @author Administrator
*
*/
public class Student {
        private String id;
        private String name;
        private Set<Course> courses;
        public String getId() {
                return id;
        }
        public void setId(String id) {
                this.id = id;
        }
        public String getName() {
                return name;
        }
        public void setName(String name) {
                this.name = name;
        }
        public Set<Course> getCourses() {
                return courses;
        }
        public void setCourses(Course courses) {
                this.courses.add(courses);
        }
        //创建含参构造器
        public Student(String id,String name){
                this.id=id;
                this.name=name;
                this.courses=new HashSet<Course>();
        }

}






package com.imooc.colection;
/**
* 课程类
* @author Administrator
*
*/
public class Course {
        private String id;
        private String name;
        public String getId() {
                return id;
        }
        public void setId(String id) {
                this.id = id;
        }
        public String getName() {
                return name;
        }
        public void setName(String name) {
                this.name = name;
        }
        //创建课程类含参构造器
        public Course(String id,String name){
                this.id=id;
                this.name=name;
        }
        /**
         *
         */
        public Course(){
               
        }
        public String toString() {
                return "Course [id=" + id + ", name=" + name + "]";
        }
        @Override
        public int hashCode() {
                final int prime = 31;
                int result = 1;
                result = prime * result + ((name == null) ? 0 : name.hashCode());
                return result;
        }
        @Override
        public boolean equals(Object obj) {
                if (this == obj)
                        return true;
                if (obj == null)
                        return false;
                if (!(obj instanceof Course))
                        return false;
                Course other = (Course) obj;
                if (name == null) {
                        if (other.name != null)
                                return false;
                } else if (!name.equals(other.name))
                        return false;
                return true;
        }
       
}




import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class ListTest {
        //创建一个list容器用于存放备选课程
        private List coursesToSelect;

        public List getCoursesToSelect() {
                return coursesToSelect;
        }

        public void setCoursesToSelect(List coursesToSelect) {
                this.coursesToSelect = coursesToSelect;
        }
        //创建构造器
        public ListTest(){
                this.coursesToSelect=new ArrayList();
        }
        public void testAdd(){
                Course[] cr={new Course("1","大学英语"),new Course("1","高等数学"),new Course("3","大学语文"),new Course("4","大学物理"),new Course("5","离散数学")};
                coursesToSelect.addAll(Arrays.asList(cr));
                System.out.println("有以下课程待选:"+Arrays.toString(cr));
        }
        public void testIndexOf(){
                System.out.println("输入课程名称:");
                Scanner input=new Scanner(System.in);
                Course cr=new Course();
                String n=input.next();
                System.out.println("你输入的是:"+n);
                cr.setName(n);
                if(coursesToSelect.contains(cr)){
                        System.out.println("课程"+cr.getName()+"的索引位置:"+coursesToSelect.indexOf(cr));
                }
                else
                        System.out.println("输入课程不存在");
        }
        public static void main(String[] args) {
                ListTest it =new ListTest();
                it.testAdd();
                for(int i=0;i<5;i++){
                it.testIndexOf();
                }
        }
}

作者: a623562486    时间: 2016-8-24 21:16
表示暂时还看不懂……
作者: gsa798780633    时间: 2016-8-26 20:17
我把你代码复制后测试,没有错误,没看到你说的问题




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2