j***a语言list接口,j***a list接口

kodinid 23 0

大家好,今天小编关注到一个比较意思的话题,就是关于java语言list接口问题,于是小编就整理了2个相关介绍j***a语言list接口的解答,让我们一起看看吧。

  1. java的Iterator和listIterator的区别?
  2. List,Map,Set三个接口存取元素时,各有什么特点?

j***a的Iterator和listIterator的区别

Iterator与ListIterator区别如下:

1、Iterator是ListIterator的父接口。

java语言list接口,java list接口-第1张图片-安济编程网
图片来源网络,侵删)

2、Iterator是单列集合(Collection)公共取出容器元素的方式。

对于List,Set都通用。

而ListIterator是List***的特有取出元素方式。

java语言list接口,java list接口-第2张图片-安济编程网
(图片来源网络,侵删)

3、Iterator中具备的功能只有hashNext(),next(),remove();

ListIterator中具备着对被遍历的元素进行增删改查的方法可以对元素进行逆向遍历。

之所以如此,是因为ListIterator遍历的元素所在的容器都有索引。

java语言list接口,java list接口-第3张图片-安济编程网
(图片来源网络,侵删)

List,Map,Set三个接口存取元素时,各有什么特点

List特点:元素有放入顺序,元素可重复 Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的) 。

Map特点:元素按键值对存储,无放入顺序 (应该知道什么是键值对吧!)List接口有三个实现类:LinkedList,ArrayList,Vector LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身内存地址的同时还存储下一个元素的地址。

链表增删快,查找慢 ArrayList和Vector的区别:ArrayList是非线程安全的,效率高;Vector是基于线程安全的,效率低 Set接口有两个实现类:HashSet(底层由HashMap实现),LinkedHashSet SortedSet接口有一个实现类:TreeSet(底层由平衡二叉树实现) Query接口有一个实现类:LinkList Map接口有三个实现类:HashMap,HashTable,LinkeHashMap HashMap非线程安全,高效,支持null;HashTable线程安全,低效,不支持null SortedMap有一个实现类:TreeMap 其实最主要的是,list是用来处理序列的,而set是用来处理集的。Map是知道的,存储的是键值对 set 一般无序不重复.map kv 结构 list 有序。

3.首先list,set的上层接口是Collection接口。list底层存储数据是通过数组储存。 他有实现类ArrayList和LinkedList比较常用。Vector这个现在基本没用。Vector和ArrayList是数组,插入数据较慢,查询较快。区别在Vector是线程安全的,所以处理速度不如ArrayList。linkedList是链表结构储存,插入数据较快,查询较慢。

4.Set***最大特点不存重复元素,Set***有自己排序方式,所以取出时顺序和存储时不一样。常用实现类HashSetHashSet储存会判断值的Hash值,相同的话则不储存。Map接口是一个键值对***,键不可以重复,值无所谓。Map***也是有自己的排序方式常用实现类HashMap.实际Map***存的就是映射。

到此,以上就是小编对于j***a语言list接口的问题就介绍到这了,希望介绍关于j***a语言list接口的2点解答对大家有用。

标签: 元素 接口 实现