在下的代码中 运行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();
}
}
}
|