首页 > 图灵资讯 > 技术篇>正文

ArrayList,Vector, LinkedList 的存储性能和特性是什么?

2021-12-15 11:57:56

  存储器,存储器,存储器的性能和特性,这类问题属于随机发挥题:这样的题比较考级,两个方面的水平:一是要真正理解这些内容,二是要有较强的总结和表述能力。假如你理解,但是表达不清楚,那么它就等同于别人的不理解。

ArrayList,Vector, <a href=https://www.tulingxueyuan.cn/tlzx/jsp/635.html target=_blank class=infotextkey>LinkedList</a>

  首先List和Set有相似之处,并且都是单列元素的集合,因此它们有一个共同的功能父接口,称为Collection。“集”中不允许有重复元素,所谓的重复,也就是,对象不可能有两个相等(注意而非完全相同),也就是,假设在Set集合中有A对象,现在我要在Set集合中多存一个B对象,但是B对象与A对象equals相等,那么B对象就无法被存储,因此,Set集合的add方法具有一个boolean返回的值,该值不包含在集合中,在这个时候add方法可以成功地加入这个元素,如果集合包含的元素等于一个元素equals,那么返回true,这时add方法不能加入这个元素,返回的结果是false。当Set获取元素时,不能说出第一个元素,只能获得Iterator接口中的所有元素,然后再一次逐个查看单个元素。

  List代表一组连续的集合,注意,并不是那种按年龄、大小、价格等分类。在调用add(Obje)方法时,每一次添加的对象都按照“先来后到”的顺序进行排序,就像在火车站购买机票一样。有时,还可以进行插队,即调用add(intindex,Obje)方法,指定保存集合中当前对象的位置。可以重复地将一个对象存储到List中,在每次调用add方法时,将该对象插入到集合中一次,实际上,并非将该对象本身存储到集合中,而是将该对象在集合中指向该对象,如果将该对象多次添加到add中,也就是,集合中的索引指向该对象的不止一个,如图x所示。List可以调用get(indexi),并在Iterator接口中获取所有元素,然后对每个元素进行逐次处理,这样List就能清楚地指出获取第一个。

  Map不同于List和Set,Map是两列的集合,put方法被定义为put(objkey),objvalue)每次存储一次,都保存一对key/value,它不能存储重复的密钥。equals也可以用equals来比较相同。通过key,取可以得到相应的value,这是一个get(Objectkey)返回值与key对应的值。此外,您还可以组合所有key,以及所有value组合,以及一个key和value组合成的Map.Entry对象。

  List按特定的顺序保存元素,可以有重复的元素。设置不能具有重复元素,内部排序。Map包含一个key-value值,value为多个值。

  HashSet将以某种操作方式存储hashcode值,而非直接以hashCode值的大小来存储。比如,"abc"--->78,

  "def"--->62,"xyz"--->65存储在hashSet中的次序为非62,65,78,以上问题感谢先前一位名叫崔健的学员,最后通过查看源代码向他解释,在这次培训中,有多少人可以看懂源代码。按照插入的顺序存储LinkedHashSet,那么存储对象的hashcode方法还能做什么?学徒们!hashset集合将比较两个对象是否相等,首先查看hashcode方法是否相等,然后看equals方法是否相等。new将两个Student插入HashSet,查看size,实现hashcode和equals方法。

  可以在Vector中多次添加相同的对象。将一个元素放入集合中,就相当于集合中有一条线与目标对象相连。到HashSet中,不会多次添加。

上一篇 Java字节流和字符流有哪些不同?
下一篇 Java基础开发的集合类都有哪些?主要方法有什么?

文章素材均来源于网络,如有侵权,请联系管理员删除。