欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

List接口以及数据结构存储特点

程序员文章站 2023-03-28 10:00:51
一、简述List接口的特点1、存取有序的集合2、有索引值3、元素可以重复二、hashCode和equals方法简述HashCode去除重复元素的原理1、调用被添加元素的HashCode(),和hashSet中已有元素的HashCode()进行比较2、如果不同,直接存储3、如果相同,调用equals方 ......

一、简述list接口的特点
1、存取有序的集合
2、有索引值
3、元素可以重复


二、hashcode和equals方法
简述hashcode去除重复元素的原理
1、调用被添加元素的hashcode(),和hashset中已有元素的hashcode()进行比较
2、如果不同,直接存储
3、如果相同,调用equals方法比较是否相同
4、不相同,直接存储元素
5、相同,直接舍弃,不存储

三、数据结构
简述常见的数据结构中元素的存取特点
1、栈:stack,又称堆栈,对元素的存取特点是:先进后出。
 即,存进去的元素,要在它后面元素一次取出后,才能取出该元素。
2、队列:queue,简称队,对元素的存取特点是:先进先出。
 即:存进去的元素要在它前边的元素取出后才能取出。
3、数组:array,是有序的元素数列,对元素的存取特点是:
     1)、查找元素快;通过索引值直接查找数组中的元素。
     2)、增删元素慢;
        (1)、指定索引位置增加元素,需要创建一个新的数组,将指定元素

            存储在指定的索引位置,再把元素组元素根据索引复制到新数组对应索引的指定位置。
        (2)、删除指定索引值的元素,需要建立一个新数组,将原数组里面的元素放到新数组中,
            需要删除的指定索引值对应的元素,不放在新数组中。

4、链表:linkedlist,对元素存取特点:
    1)、多个节点之间通过地址值进行连接。
 
    2)、查找元素慢

    3)、增删元素快

        增加元素:只需要修改连接下一个元素的地址

        删除元素: 只需要修改连接上一个元素的地址


四、comparable 和 comparator 比较器

简述comparable和comparator两个接口的区别

  comparable:强行对实现它的每个类的对象进行整体排序。

    这种顺序被称为类的自然顺序

    类的compareto方法被称为自然的比较方法,只能在类中实现compareto()

    一次,不能经常修改类的代码实现自己想要的顺序。

    实现此接口的对象列表(和数组)可以通过collections.sort(和arrays.sort)进行自动排序

    对象可以用作有序映射中的键或者有序集合中的元素,不用指定比较器。

  comparator:强行对某个对象进行整体排序。

    可以将comparator传递给sort方法(collections.sort或arrays.sort)

    从而允许在排序顺序上实现精准控制

     还可以使用comparator来控制某些数据结构(如有序set或有序映射)的顺序,

        或者为那些没有自然顺序的对象collection提供排序。