Java中ArrayList和LinkedList的异同

      作为List下面的两个重要实现类,ArrayList和LinkedList在开发中有着不同的应用,其不同点可以大致概括如下:

  1. ArrayList是用线性表(数组)实现的,而LinkedList是用链表来实现的;

  2. 在查找和修改方面,ArrayList速度更快,因为ArrayList可以直接访问到数组的下标,而LinkedList需要从头节点依次向后遍历;

  3. 在添加和删除方面,LinkedList更有优势,因为ArrayList需要对数组后面的每一个元素进行移动,而LinkedList并不需要移动。

:在使用集合类的时候不能使用内置类型(如int,char等),而必须要使用引用类型(如Integer,Character等)。

常用方法

ArrayList和LinkedList有几个共同的常用方法:

  1. add(value) :在List尾部添加元素value;

  2. get(index):返回下标为index元素的值;

  3. remove(index):删除下标为index的元素;

  4. set(index, value):将下标为index的元素值设置为value。

代码

下面代码中将List的几个常用方法,以及三种遍历方式展现出来。

List<String> list = new ArrayList<>();
//向list中添加 a b c三个字符串
list.add("a");
list.add("b");
list.add("c");
		
for(int i = 0; i < list.size(); i++)
{
	System.out.println(list.get(i));
}
//输出 a b c
		
list.remove(0);
for(String x: list)
{
	System.out.println(x);
}
//输出 b c
		
list.set(1, "d");	//改变所以1处的值,改为“d”
Iterator<String> iter = list.iterator();    //通过迭代器遍历
while(iter.hasNext())
{
	System.out.println(iter.next());
}
//输出 b d

       LinkedList的方法也比较相似,只是不同方法的时间复杂度有些不同。此外,LinkedList还包括一些对头节点和尾节点进行操作的函数。

发布了34 篇原创文章 · 获赞 80 · 访问量 2030

猜你喜欢

转载自blog.csdn.net/jackzhang11/article/details/102612766