day21每日一考

day21每日一考

题目

1.集合Collection中存储的如果是自定义类的对象,需要自定义类重写哪个方法?为什么?
2.ArrayList,LinkedList,Vector三者的相同点与不同点?【面试题】
3.List接口的常用方法有那些?(增、删、改、查、插、长度、遍历)
4.如何使用Iterator和增强for循环遍历List。举例说明
5.Set存储数据的特点是什么?常见的实现类有什么?说明一下彼此的特点。

答案

第一题

如果是List接口,需要重写equals方法,因为List接口时通过equals来判读两个元素是否相等,方法调用都需要考虑equals()方法

如果是Set接口,需要重写equals方法和hashCode()方法,因为Set接口需要通过hashCode()来获取哈希值,进而判断在数组的位置,后通过equals来判读两个元素是否相等,来保证不重复

如果是TreeSet类,需要重写toCompare()和hashCode()方法,因为Set方法需要通过hashCode()来获取哈希值,进而判断在数组的位置,

如果哈希值一样需要判断toCompare()来判断二者是否一样进而是否存储

comparator()

第二题

同:存入的元素有序,可重复,都是先List接口

ArrayList: List接口的主要实现类,线程不安全、效率高,底层通过Object[]数组存储,正常情况下扩容为1.5倍

LinkedList:如果进行频繁的插入、删除操作有限使用LinkedList比ArrayList效率高,底层通过双向线链表存储

Vector:List接口的古老实现类,线程安全、效率低,底层通过Object[]数组存储,正常情况下扩容为2倍

第三题

增:add()

删:remove()

改:set()

查:get()

插:add()

长度:size()

遍历:for增强类、for、interator迭代器

第四题

public class HomeWork {
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        list.add(1);
        list.add(11);
        list.add(111);
        list.add(1111);
        list.add(11111);
        list.add(111111);
        Iterator iterator = list.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }
        System.out.println("****************");
        list.forEach(System.out::println);
    }

}

第五题

Set:不可重复,无序性

HashSet:无序性,不可重复,Set的主要实现类,

LinkedHashSet:可以按输入顺序遍历

TreeSet:可以按照类或类某个属性进行排序,输入元素的类型要一致

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值