java 有序的list_Java 中的 List —— 有序序列

  • Post author:
  • Post category:java


List 在 java 中是个有序序列:

一、容量

ArrayList 中有一个容量概念,表示基础数组的大小(无参时默认为 10)。在需要的时候(比如 add操作)会自动增加其容量。LinkedList 没有这个概念。

TreeMap 也有容量,默认是 16.

二、改善的 search 方法

LinkedList 与 ArrayList 都很低效。比如 Collection 的 contain 和 remove 方法而言。他们均花费线性时间。可以使用相应的算法。

三、改善的 remove 方法(此方法对 ArrayList 无效,ArrayList 由于 remove 会改变数组结构,结构重组将花费大量时间。)

foreach 的局限性

public static void removeEvensVer2(List lst) {

for(Integer x : lst) {

if (x % 2 == 0)

lst.remove(x);

}

}

抛异常

java.util.ConcurrentModificationException

使用 while循环(但是这个方法对于 LinkedList 来说有几个糟糕的操作:1,使用 get方法,去遍历,在遍历的时候 get也花费线性时间。2,remove 同理,remove方法本身也花费线性时间)

public static void removeEvensVer1(List lst) {

int i = 0;

while (i < lst.size())

if (lst.



版权声明:本文为weixin_39839018原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。