java LinkedList 基本用法

LinkedList是对双链表的一种实现,插入删除时间开销是O(1),查找、随机访问时间开销是O(n)。

如果一个集合要求频繁随机插入删除,不要求随机访问,可以考虑采用LinkedList。


<span style="font-family: Arial, Helvetica, sans-serif;">//新建</span>
<span style="font-family: Arial, Helvetica, sans-serif;">LinkedList<String> lk = new LinkedList<String>();</span>

//在后面追加,正常的添加方式,用getLast()获得最晚push的元素,去掉push的注释,注释掉add,可以看到输出顺序颠倒。
lk.add("11");
lk.add("22");
lk.add("33");

<pre name="code" class="java"><span style="font-family: Arial, Helvetica, sans-serif;">//在前面添加,用getLast()获得最早push的元素</span>
<span style="font-family: Arial, Helvetica, sans-serif;">/</span><span style="font-family: Arial, Helvetica, sans-serif;">/lk.push("11");</span>
<span style="font-family: Arial, Helvetica, sans-serif;">//lk.push("22");</span>
//lk.push("33");

 
//O(1)的访问方法,获取头部、尾部元素
System.out.println(lk.getFirst());//out: 11
System.out.println(lk.getLast());//out: 33

//迭代器,最初指向第一个元素之前的位置,it.next()返回下一个元素,不断调用来遍历。
Iterator<String> it = lk.iterator();
while(it.hasNext()){
	System.out.println(it.next());//out: 11 22 33
}

//foreach遍历方式
for(String s:lk){
	System.out.println(s);//out: 11 22 33
}


java中的LinkedList是一个双向链表的数据结构,位于java.util包中。要使用LinkedList,需要先引入它的类。可以使用以下语法格式创建一个LinkedList实例: ```java import java.util.LinkedList; LinkedList<E> list = new LinkedList<E>(); // 普通创建方法 ``` 也可以使用集合来创建一个LinkedList实例: ```java import java.util.LinkedList; LinkedList<E> list = new LinkedList(Collection<? extends E> c); // 使用集合创建链表 ``` 以下是一个简单的创建LinkedList实例的示例代码: ```java import java.util.LinkedList; public class Example { public static void main(String[] args) { LinkedList<String> sites = new LinkedList<String>(); sites.add("Google"); sites.add("Runoob"); sites.add("Taobao"); sites.add("Weibo"); System.out.println(sites); } } ``` 需要注意的是,LinkedList类的声明如下: ```java public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable ``` LinkedList类是一种具有双向链接的链表,它实现了List接口、Deque接口和AbstractSequentialList类。通过使用LinkedList,可以方便地对链表进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Java中链表(Linked list用法(单链表,双链表)](https://blog.csdn.net/Sueko/article/details/123333777)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [java LinkedList用法解析(全面)](https://blog.csdn.net/linZinan_/article/details/114604893)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值