登录
jinqianwang
关注
关于LinkedList使用方法总结 原创
2018-04-21 14:29:08
4点赞
jinqianwang
码龄3年
关注
1,LinkedList也是继承了List的接口
所以 在LinkedList中存储的也是有序的,不唯一的数据
它采用的是 链表式储存,所以比较适合用来 执行插入,删除等功能
2,LinkedList 特有的方法
添加元素
在列表的 首部添加元素
li.add First(news)
在列表的 末尾添加元素
li.add Last(news)
返回元素
返回列表中的 第一个元素
li.get First()
返回列表中的 最后一个元素
li.get Last()
删除元素
删除并返回列表中的 第一个元素
li.remove First()
删除并返回列表中的 最后一个元素
li.remove Last()
3,与 ArrayList相同的方法
添加
li.add(null)
li.add( 0, null)
获取
li.get(0)
对比查找
li.contains(news)
获取集合长度
li.size()
替换对象
li.set(0, null)
删除
li.remove(0)
li.remove( news)
清空集合
li.clear()
特别方法:
如果此集合包含指定集合中的所有元素, 则返回 true。
li.containsAll(li)
以相反的顺序返回此 deque 中元素的迭代器。元素将按从最后 (尾部) 到第一个 (头部) 的顺序返回。
li.descendingIterator()
移除此列表中指定元素的第一个匹配项 (当从从头到尾遍历列表时)。如果列表中不包含元素, 则它不变。
li.removeFirstOccurrence(news)
移除此列表中指定元素的最后一个匹配项 (当从从头到尾遍历列表时)。如果列表中不包含元素, 则它不变。
li.removeLastOccurrence(news)
检索但不移除此列表的头 (第一个元素)。
li.element()
返回此列表的哈希代码值。
li.hashCode()
如果此集合不包含任何元素, 则返回 true。
li.isEmpty()
LinkedList里储存的其实是Entry而不仅仅是外面看上去的元素,每个Entry里有三个元素:值本身,排在这个Entry前的那个Entry,排在这个Entry后的那个Entry。表里的所有Entry就这样前后一个钩一个连在一起,这就是为什么这种List叫LinkedList的原因。现在已经有一个LinkedList了,我要往里加一个新元素,而且指定要加在某Entry(我们叫它x,程序里它叫entry)之前,也就是要插在x和x前面那个Entry(我们叫它y,也就是x.previous)之间,那么新的Entry是怎么样的呢?它里面的三个元素是新元素值(e),它前面的那个Entry(自然是y),它后面那个Entry(自然是x),所以有这句
Entry<E>newEntry = new Entry<E>(e, entry, entry.previous)
有了这句还不够,还得把原来y和x之间的连接敲断,重新接到这个新加的Entry上。newEntry.previous(就是y)的后一个Entry就是新Entry:
newEntry.previous.next = newEntry
而newEntry.next(就是x)的前一个Entry也是新Entry:
newEntry.next.previous = newEntry
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)