ArrayList应用案例二:课程信息的查询
案例目的:加强 ArrayList 的使用
案例需求:在案例一的基础之上,ᨀ示用户“请输入要查询的关键字”,当用户输入关键字
后,可以按照课程名称查询出符合条件的课程
案例解析:
1. 这道题目的关键是 找到包含关键字(用户输入的),我们可以遍历查找,并将其放入
一个新的列表,假定为 new_list(就是这句话声明的:ArrayList<Course> new_list = new
ArrayList<Course>();)。
2. 如何判断列表中的某一个元素是否包含关键字,这里我们要用到字符串的 contains 方
法。所以,我们需要不断的遍历每一个课程对象,并且利用该方法判断每一个课程对
象的课程名称(course.getCname())是否包含关键字。如果包含,就将该课程放入 new_list
中。最后循环打印出来即可。
案例实现:
Course.java(课程类)
package www.yiniuedu.pojo;
/**
* Course.java(课程类)
*
* @author bsh
*
*/
public class Course {
private String cId;// 课程编号
private String cName;// 课程名称
public Course() {
super();
}
public Course(String cId, String cName) {
super();
this.cId = cId;
this.cName = cName;
}
public String getcId() {
return cId;
}
public void setcId(String cId) {
this.cId = cId;
}
public String getcName() {
return cName;
}
public void setcName(String cName) {
this.cName = cName;
}
@Override
public String toString() {
return "课程信息 [课程编号=" + cId + ", 课程名称=" + cName + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((cId == null) ? 0 : cId.hashCode());
result = prime * result + ((cName == null) ? 0 : cName.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Course other = (Course) obj;
if (cId == null) {
if (other.cId != null)
return false;
} else if (!cId.equals(other.cId))
return false;
if (cName == null) {
if (other.cName != null)
return false;
} else if (!cName.equals(other.cName))
return false;
return true;
}
}
测试类:
TestOne.java(测试类)
package www.yiniuedu.test;
import java.util.ArrayList;
import java.util.Scanner;
import www.yiniuedu.pojo.Course;
public class TestOne {
public static void main(String[] args) {
Course c1 = new Course("j001","Java程序设计");
Course c2 = new Course("c001","文学素养");
Course c3 = new Course("m001","高等数学");
Course c4 = new Course("e001","大学英语");
ArrayList<Course> list = new ArrayList<Course>();
list.add(c1);
list.add(c2);
list.add(c3);
list.add(c4);
System.out.println("请输入要查询的关键字:");
Scanner sc = new Scanner(System.in);
String key = sc.next();
ArrayList<Course> new_List = new ArrayList<Course>();
for(Course c:list) {
if(c.getcName().contains(key)) {
new_List.add(c);
}
}
for(Course c:new_List) {
System.out.println(c);
}
}
}
测试执行结果:
创作不易,费时费力,小手轻点,顺手打赏
微信打赏
QQ打赏