实验要求
1、集合Collection中存储的如果是自定义类的对象,需要自定义类重写哪个方法?为什么?
2、ArrayList,LinkedList,Vector三者的相同点和不同点
3、List接口的常用方法有哪些
4、Set存储数据的特点是什么?有哪些实现类,简述各实现类的特点
5、如何去除list中重复的数据
6、创建一个List集合的对象,添加几个数字,反转对象中元素的顺序;根据元素的自然顺序排序
7、一组数列A[25,36,17,23,14] ,一组数列B[10,8,25,36,14,72] 将两个数列合并,重复只出现一次,并按照从小到打输出
8、随机生成五组双色球彩票,双色球规则,是这样的 红号是1-33 取六个不重复的,蓝号是1-16 取一个。
9、课堂演示是学生管理系统,分别采用三个集合实现
10、发的业务图片尝试实现
实验过程
1、集合Collection中存储的如果是自定义类的对象,需要自定义类重写哪个方法?为什么?
需要重写equals()和hashcode()方法;因为在操作集合时需要调用hashcode()和equals()方法来进行判断,当自定义类两个对象相等时,要确保hashcode()和equals()方法也同步。
2、ArrayList,LinkedList,Vector三者的相同点和不同点
相同点:类中的元素有序可重复
不同点:
ArrayList:线程不安全
LinkedList:LinkedList底层是双向链表存储元素的,ArrayList和Vector是底层都是一个自动变长的数组
Vector:线程安全
3、List接口的常用方法有哪些
add(),remove(),removeAll(),set(int index, Object o),get(int index),insert(int index, Object o),insert(int index),size(),iterator()
4、Set存储数据的特点是什么?有哪些实现类,简述各实现类的特点
无序不可重复,存储时调用hashcode()方法来存储,采用数组+链表的形式;
HashSet:数组+链表,存入时判断哈希值,如果哈希值相同无法存入,如果哈希值不同则调用equals()方法来进一步确认,如果equals()方法返回true则也认为添加重复元素;
LinkedHashSet:数组+链表,每一个元素之间有双向链表,按顺序保存,不允许元素重复
TreeSet:红黑树
5、如何去除list中重复的数据
(1)将ArrayList转为LinkedHashSet完成去重再将LinkedHashSet转换回ArrayList;
(2)遍历旧的ArrayList中的数进行是否有重复值判断,如果没有重复则添加到新的ArrayList里;
6、创建一个List集合的对象,添加几个数字,反转对象中元素的顺序;根据元素的自然顺序排序
7、一组数列A[25,36,17,23,14] ,一组数列B[10,8,25,36,14,72] 将两个数列合并,重复只出现一次,并按照从小到打输出
8、随机生成五组双色球彩票,双色球规则,是这样的 红号是1-33 取六个不重复的,蓝号是1-16 取一个。
9、课堂演示是学生管理系统,分别采用三个集合实现
Student类
View类
接口
List实现
Map实现
Set实现
10、发的业务图片尝试实现
图片
实现
Book类:
BookDao接口:
BookImplement类:
BookView类: