慕课网
2-4 编程练习
使用集合ArrayList对字符串进行存储和管理。
效果图:
任务
1、定义ArrayList对象
2、存储学科名称,见运行效果图
3、输出集合中元素的个数
4、遍历输出集合中的所有元素
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ArrayListDemo {
public static void main(String[] args) {
// 用ArrayList存储学科的名称
List<String> subjectlist = new ArrayList<String>();
subjectlist.add("语文");
subjectlist.add("数学");
subjectlist.add("英语");
subjectlist.add("化学");
subjectlist.add("物理");
subjectlist.add("生物");
// 输出列表中元素的个数
int num = subjectlist.size();
System.out.println("列表中元素的个数为:" + num);
// 遍历输出所有列表元素
for (int i = 0; i < num; i++) {
// 打印列表内容
System.out.println("第" + (i + 1) + "个为" + subjectlist.get(i));
}
/* 第二种遍历方式 */
System.out.println("foreach的遍历方式:");
for (String list : subjectlist) {
System.out.println(list);
}
System.out.println();
/* 第三种遍历方式 */
System.out.print("Iterator的遍历方式:");
for (Iterator<String> list = subjectlist.iterator(); list.hasNext();) {
System.out.println(list.next());
}
}
}
2-8 编程练习
定义一个员工信息类Employee,使用ArrayList对员工信息进行添加和显示。
效果图:
任务
1、实现员工信息类Employee
成员变量:编号id(int),姓名name(String),薪资salary(double)
方法:构造方法和相关的get和set方法
2、定义三条员工信息添加到ArrayList中
3、将所有员工的姓名和薪资输出,见效果图
Employee.java
public class Employee{
//根据需求完成Employee类的定义
private int id;
private String name;
private double salary;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public Employee(int id, String name, double salary) {
super();
this.id = id;
this.name = name;
this.salary = salary;
}
}
EmployeeTest.java
import java.util.List;
import java.util.ArrayList;
public class EmployeeTest {
public static void main(String[] args) {
//定义ArrayList对象
ArrayList<Employee> list=new ArrayList<Employee>();
//创建三个Employee类的对象
Employee emp1=new Employee(1,"张三",5000);
Employee emp2=new Employee(2,"李四",5500);
Employee emp3=new Employee(3,"赵六",4000);
//添加员工信息到ArrayList中
list.add(emp1);
list.add(emp2);
list.add(emp3);
//显示员工的姓名和薪资
System.out.println("员工姓名"+"\t"+"员工薪资");
for (int i = 0; i < list.size(); i++) {
System.out.print(((Employee) (list.get(i))).getName()+"\t"+((Employee) (list.get(i))).getSalary());
System.out.println();
}
}
}
3-13 编程练习
定义一个学生类,使用HashSet对学生类的对象进行管理:执行添加操作,然后解决重复数据的添加问题。
效果图:
任务
1、 定义一个学生类Student
(1)属性为:学号stuId(int),姓名name(String),成绩score(float)
(2)方法为:构造方法,getter和setter方法,toString方法
(3)重写hashCode()和equals()方法,equals方法的判断依据是学号和姓名相等
2、定义三个Student类的对象,添加到HashSet中
3、显示HashSet中元素的内容
4、添加一个重复数据到Set中,观察输出结果
Student .java
public class Student {
// 根据需求完成Student类的定义
private int stuId;
private String name;
private float score;
public int getStuId() {
return stuId;
}
public void setStuId(int stuId) {
this.stuId = stuId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getScore() {
return score;
}
public void setScore(float score) {
this.score = score;
}
public Student(int stuId, String name, float score) {
super();
this.stuId = stuId;
this.name = name;
this.score = score;
}
@Override
public String toString() {
return "Student [stuId=" + stuId + ", name=" + name + ", score=" + score + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + stuId;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (stuId != other.stuId)
return false;
return true;
}
}
StudentTest .java
package part01week0504;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class StudentTest {
public static void main(String[] args) {
// 定义三个Student类的对象及一个HashSet类的对象
Student stu1 = new Student(1, "Tom", 87.0f);
Student stu2 = new Student(2, "Lucy", 95.0f);
Student stu3 = new Student(3, "William", 65.0f);
Set<Student> hashSet = new HashSet<>();
// 2、定义三个Student类的对象,添加到HashSet中
// 将Student类的对象添加到集合中
hashSet.add(stu1);
hashSet.add(stu2);
hashSet.add(stu3);
// 3、显示HashSet中元素的内容
// 使用迭代器显示Student类的对象中的内容
// 通过迭代器遍历HashSet
Iterator<Student> it = hashSet.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
System.out.println("==================");
// 4、添加一个重复数据到Set中,观察输出结果
hashSet.add(stu1);
hashSet.add(stu2);
// 通过加强for循环遍历HashSet
for (Student s : hashSet) {
System.out.println(s);
}
}
}