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

一些数据结构的知识

程序员文章站 2022-03-05 16:03:48
...
1:ArrayList使用数组实现List接口,所以对于快速的随机取得对象来说,使用ArrayList可以得到较好的效能,不过在移除对象或插入对象时,ArrayList就比较慢(使用 LinkedList 在这方面就好的多)。

除了具有Collection接口必备的iterator()方法外,List还提供一个listIterator()方法,返回一个ListIterator接口,和标准的Iterator接口相比,ListIterator多了一些add()之类的方法,允许添加,删除,设定元素,还能向前或向后遍历。

2:List类是以对象加入(add)容器的顺序来排列它们,如果您的对象加入之后大都是为了取出,而不会常作移除或插入(Insert)的动作,则使用ArrayList,如果您会经常从容器中作移除或插入对象的动作,则使用LinkedList会获得较好的效能。在J2SE 5.0中,LinkedList也实现了新加入的java.util.Queue接口

3:HashSet实现Set接口,Set接口继承Collection接口,Set容器中的对象都是唯一的,加入 Set容器中的对象都必须覆盖equals()方法,作为唯一性的识别,Set容器有自己的一套排序规则。
HashSet的排序规则是利用Hash Table,所以加入HashSet容器的对象还必须覆盖hashCode()方法,利用Hash的方式,可以让您快速的找到容器中的对象,在比较两个加入Set容器中的对象是否相同时,会先比较hashCode()方法传回的值是否相同,如果相同,则再使用equals()方法比较,如果两者都相同,则视为相同的对象。
加入HashSet后进行迭代输出的话和加入顺序是不一样的。LinkedHashSet就是前后一样了。
相关标签: 数据结构 J2SE