ArrayList应用案例二:课程信息的查询

时间:2024-03-23 20:09:38

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);
		}
		
	}

}

测试执行结果:

ArrayList应用案例二:课程信息的查询

创作不易,费时费力,小手轻点,顺手打赏

微信打赏

ArrayList应用案例二:课程信息的查询   

QQ打赏

ArrayList应用案例二:课程信息的查询