Java集合 练习

选择

1、下列不属于Collection子接口的是 B
在这里插入图片描述
2、已知ArrayList的对象是list,以下哪个方法是判断ArrayList中是否包含"dodoke" A
在这里插入图片描述
3、下列哪个方法可以获取列表指定位置处的元素 D
在这里插入图片描述
4、下列有关HashSet的描述正确的是(多选) AC
在这里插入图片描述
5、以下关于Set对象的创建错误的是 A
在这里插入图片描述
6、关于Iterator的描述错误的是 D
在这里插入图片描述
7、定义一个Worker类,关于hashCode()方法的说法正确的是? C
在这里插入图片描述
8、下列相关迭代器描述正确的是 ABC
在这里插入图片描述
9、HashMap的数据是以key-value的形式存储的,以下关于HashMap的说法正确的是 C
在这里插入图片描述
10、已知HashMap对象,横线处应添加的语句是? A
在这里插入图片描述
11、以下关于Set和List的说法,正确的是 C
在这里插入图片描述

编程

1、使用集合ArrayList对字符串进行存储和管理。
在这里插入图片描述

package project0730.demo1;

import java.util.ArrayList;
import java.util.List;

public class ArrayListDemo {
	public static void main(String[] args) {
		// 用ArrayList存储学科的名称
		List list = new ArrayList();
		list.add("语文");
		list.add("数学");
		list.add("英语");
		list.add("化学");
		list.add("物理");
		list.add("生物");
		// 输出列表中元素的个数
		System.out.println("列表中元素的个数为:" + list.size());
		// 遍历输出所有列表元素
		for (int i = 0; i < list.size(); i++) {
			System.out.println("第" + (i + 1) + "个为" + list.get(i));
		}
	}
}

在这里插入图片描述
2、定义一个员工信息类Employee,使用ArrayList对员工信息进行添加和显示。
在这里插入图片描述

package project0730.demo2;

public class Employee {
	// 成员属性
	private int id;
	private String name;
	private double salary;

	// get/set方法
	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() {
		super();
	}

	public Employee(int id, String name, double salary) {
		super();
		this.setId(id);;
		this.setName(name);;
		this.setSalary(salary);;
	}
}

package project0730.demo2;

import java.util.ArrayList;
import java.util.List;

public class EmployeeTest {
	public static void main(String[] args) {
		// 定义ArrayList对象
		List<Employee> list = new ArrayList<Employee>();
		// 创建三个Employee类的对象
		Employee e1 = new Employee(1, "张三", 5000.0);
		Employee e2 = new Employee(2, "李四", 5500.0);
		Employee e3 = new Employee(3, "赵六", 4000.0);
		// 添加员工信息到ArrayList中
		list.add(e1);
		list.add(e2);
		list.add(e3);
		// 显示员工的姓名和薪资
		System.out.println("员工姓名\t员工薪资");
		for(int i = 0; i < list.size(); i++) {
			System.out.println(list.get(i).getName() + "\t" + list.get(i).getSalary());
		}
	}
}

在这里插入图片描述
3、定义一个学生类,使用HashSet对学生类的对象进行管理:执行添加操作,然后解决重复数据的添加问题。
在这里插入图片描述

package project0730.demo3;

public class Student {
	// 成员属性
	private int stuld;
	private String name;
	private float score;

	// get/set方法
	public int getStuld() {
		return stuld;
	}

	public void setStuld(int stuld) {
		this.stuld = stuld;
	}

	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() {
		super();
	}

	public Student(int stuld, String name, float score) {
		super();
		this.setStuld(stuld);
		this.setName(name);
		this.setScore(score);
	}
	
	// 重写toString方法
	@Override
	public String toString() {
		String str = "[学号:" + this.getStuld();
		str += ",姓名:" + this.getName();
		str += ",成绩:" + this.getScore() + "]";
		return str;
	}

	// 重写hashCode方法
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((name == null) ? 0 : name.hashCode());
		result = prime * result + Float.floatToIntBits(score);
		result = prime * result + stuld;
		return result;
	}

	// 重写equals方法
	@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 (stuld != other.stuld)
			return false;
		return true;
	}
	
}

package project0730.demo3;

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

public class StudentTest {
	public static void main(String[] args) {
		// 定义三个Student类的对象及一个HashSet类的对象
		Student s1 = new Student(3, "William", 65.0F);
		Student s2 = new Student(1, "Tom", 87.0F);
		Student s3 = new Student(2, "Lucy", 95.0F);
		Set<Student> set = new HashSet<Student>();
		// 将Student类的对象添加到集合中
		set.add(s1);
		set.add(s2);
		set.add(s3);
		// 添加一个重复数据到Set中,观察输出结果
		set.add(s1);
		// 使用迭代器显示Student类的对象中的内容
		Iterator<Student> it = set.iterator();
		 while(it.hasNext()) {
			 System.out.println(it.next());
		 }
	}
}

在这里插入图片描述

4、已知如下数据:世界杯冠军及夺冠年份。
在这里插入图片描述
在这里插入图片描述

package project0730.demo4;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

public class FootballDemo {
	public static void main(String[] args) {
		//定义HashMap的对象并添加数据
		Map<String,String> map = new HashMap<String,String>();
		map.put("2014", "德国");
		map.put("2010", "西班牙");
		map.put("2006", "意大利");
		map.put("2002", "巴西");
		map.put("1998", "法国");
		//使用迭代器的方式遍历
		System.out.println("使用迭代器方式进行输出:");
		Iterator<String> it = map.values().iterator();
		while(it.hasNext()) {
			System.out.print(it.next() + " ");
		}
		//使用EntrySet同时获取key和value
		System.out.println("\n使用EntrySet进行输出:");
		Set<Entry<String,String>> set = map.entrySet();
		for(Entry<String,String> entry : set) {
			System.out.print(entry.getKey() + "-" + entry.getValue() + "\n");
		}
	}
}

在这里插入图片描述

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页