Collection接口实践:添加与遍历猫类对象及成绩库应用

需积分: 0 1 下载量 30 浏览量 更新于2024-08-04 收藏 19KB DOCX 举报
本资源主要针对Java编程语言中的Collection接口及其子接口进行详细讲解。首先,Collection接口是Java集合框架的基础接口,它包含了集合的基本特性,如添加、删除、查找和获取元素等操作。其主要的子接口有两个,分别是List和Set。 List接口的特点在于它允许有重复的元素,并且元素的顺序是有序的,提供了索引访问。常见的List子类有ArrayList和LinkedList。ArrayList基于数组实现,提供随机访问速度快,但插入和删除元素时效率较低;LinkedList则基于链表实现,插入和删除元素高效,但查找速度较慢。 Set接口的特点则是不允许有重复元素,每个元素都是唯一的,而且通常没有特定的顺序。常用的Set子类有HashSet和TreeSet。HashSet基于哈希表实现,具有快速查找的优点;TreeSet则是基于红黑树,元素有序。 在练习部分,要求学生在main()方法中使用Collection接口的多态性,通过ArrayList(List子类)存储String类型的元素。具体操作包括添加元素(如"柳岩"),检查元素是否存在并删除,获取集合大小,以及使用数组、迭代器(需指定泛型)和增强for循环遍历元素。 另外,还涉及到了自定义一个名为Cat的类,包含名称、颜色和年龄属性,以及对应的构造方法和成员方法。在main()方法中,向一个包含多个Cat对象的Collection中添加数据,并通过多种方式遍历集合。 在模拟班级成绩库的场景中,学生列表(ArrayList)被用来存储学生对象,每个学生对象包含姓名、英语、数学和Java等成绩。这个练习要求实现的功能包括修改特定学生的一项成绩和打印全班成绩,这些都通过集合操作来完成。 总结来说,本资源的重点在于理解Collection接口的基础概念,熟练运用List和Set接口,以及它们的子类,同时掌握如何在实际编程中灵活使用这些接口进行数据管理和操作。
3272 浏览量
掌握集合的概念、体系结构、分类及使用场景 2)了解Set接口及主要实现类(HashSet、TreeSet) 3)了解List接口及主要实现类(ArrayList、LinkedList、Vector) 4)了解Map接口及主要实现类(HashMap、TreeMap、HashTable) 二、实验内容及步骤 1、编写程序练习将以下5个Person类的对象放在一个HashSet中。 姓名:张三 身份证号:178880001 姓名:王五 身份证号:178880002 姓名:李四 身份证号:178880003 姓名:王五 身份证号:178880002 姓名:李四 身份证号:178880004 注意:因为Person类是自定义类,需要重写hashCode()方法和equals()方法,并规定只有姓名和身份证号都相等,则对象相等。 其中计算哈希码的算法:(31 + ((name == null) ? 0 : name.hashCode()))*31 + id (注:name:Person对象的姓名,id:Person对象的身份证号) 主方法中作如下测试: 1)创建一个可放置Person类对象的HashSet; 2)依次添加上述5个对象到HashSet中; 3)把集合中的元素打印出来(使用迭代器Iterator) 2、编写程序练习List集合的基本使用: 1) 创建一个只能容纳String对象名为names的ArrayList集合; 2)按顺序往集合中添加5个字符串对象:"张三"、"李四"、"王五"、"马六"、"赵七"; 3)对集合进行遍历,分别打印集合中的每个元素的位置与内容; 4)打印集合的大小,然后删除集合中的第3个元素,并显示删除元素的内容,然后再打印目前集合中第3个元素的内容,并再次打印集合的大小。 3、编写程序练习Map集合的基本使用: 1)创建一个只能容纳String对象的person的HashMap集合; 2)往集合中添加5个"键-值"对象: "id"-"1"; "name"-"张三"; "sex"-"男"; "age"-"25"; "hobby"-"爱学Java" 3)对集合进行遍历,分别打印集合中的每个元素的键与值; 4)打印集合的大小,然后删除集合中的键为age的元素,并显示删除元素的内容,并再次打印集合的大小。 四、思考题 1、集合中的List、Set、Map有哪些不同? 2、为什么使用集合框架,而尽可能少用数组作为存储结构? 3、如何使用TreeSet实现第一题?