JAVA中實現鏈表--LinkedList的使用

import java.util.LinkedList;
import java.util.Vector;

/**
 * Java中的鏈表,SUN公司已經為我們做好了,我們只需要簡單的使用就可以了
 * 當沒有要求的時候,就可以不用自己去實現。
 * 如果確實有要求要自己實現,那么也自己實現也是一樣的道理,只需要像
 * LinkedList中一樣,實現向個接口方法,同樣可以做到。
 * 這里是一個簡單的例子,如果相參看自己實現的鏈接,可以去這里:
 * http://blog.csdn.net/fenglibing/archive/2006/04/19/669456.aspx
 * http://blog.csdn.net/fenglibing/archive/2006/04/19/669362.aspx
 */
public class LinkListTest
{
  public static void main(String[] arg)
  {
    //初使化一個鏈表
    LinkedList head = new LinkedList();
    int size = 0;
    head.add(new String("小狗"));
    head.add(new String("美國"));
    head.add(new String("Japanese!"));
    head.add(2, "小鍺");
    //鏈表會自動用遍歷的方式打印所有內容
    System.out.println(head);
    //利用Vector或者是ArrayList等Collection往鏈表中加數據
    Vector v = new Vector();
    //向Vector中加入東西
    v.add("大狗");
    v.add("老美");
    v.add("JAPAN");
    v.add("老鍺");
    //將當前Vector加在當前鏈表的最后
    head.addAll(v);
    System.out.println(head);
    //將當前Vector加在當前鏈表的指定位置
    head.addAll(2, v);
    System.out.println(head);
    //打印指定位置的內容
    System.out.println(head.get(2));
    head.addFirst("第一個");
    System.out.println(head);
    head.addLast("最后一個");
    System.out.println(head);
    //刪除第一個
    head.remove(head.getFirst());
    System.out.println(head);
    //再刪除第一個,采用下標的方式,下標從0開始
    head.remove(0);
    System.out.println(head);
    head.remove(head.getLast());
    System.out.println(head);
  }
}

輸出結果如下:

[小狗, 美國, 小鍺, Japanese!]
[小狗, 美國, 小鍺, Japanese!, 大狗, 老美, JAPAN, 老鍺]
[小狗, 美國, 大狗, 老美, JAPAN, 老鍺, 小鍺, Japanese!, 大狗, 老美, JAPAN, 老鍺]
大狗
[第一個, 小狗, 美國, 大狗, 老美, JAPAN, 老鍺, 小鍺, Japanese!, 大狗, 老美, JAPAN, 老鍺]
[第一個, 小狗, 美國, 大狗, 老美, JAPAN, 老鍺, 小鍺, Japanese!, 大狗, 老美, JAPAN, 老鍺, 最后一個]
[小狗, 美國, 大狗, 老美, JAPAN, 老鍺, 小鍺, Japanese!, 大狗, 老美, JAPAN, 老鍺, 最后一個]
[美國, 大狗, 老美, JAPAN, 老鍺, 小鍺, Japanese!, 大狗, 老美, JAPAN, 老鍺, 最后一個]
[美國, 大狗, 老美, JAPAN, 老鍺, 小鍺, Japanese!, 大狗, 老美, JAPAN, 老鍺]

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

原文地址:https://www.cnblogs.com/skiwdhwhssh/p/10340851.html

时间: 2024-10-11 11:04:55

JAVA中實現鏈表--LinkedList的使用的相关文章

详解Java中ArrayList、Vector、LinkedList三者的异同点

一.ArrayList ArrayList是一个可以处理变长数组的类型,这里不局限于"数"组,ArrayList是一个泛型类,可以存放任意类型的对象.顾名思义,ArrayList是一个数组列表,因此其内部是使用一个数组来存放对象的,因为Object是一切类型的父类,因而ArrayList内部是有一个Object类型的数组类存放对象.ArrayList类常用的方法有add().clear().get().indexOf().remove().sort().toArray().toStri

在FineReport報表軟體中實現分發逐級上報

什麼是分發逐級上報 分發逐級上報是指任務流程是先從上級到下級,然後下級再逐級上報回上級,即上級部門將任務下發下來,下級部門收到任務之後,逐級上報,直至回到下發任務的上級部門,然後再繼續原來的任務. 比如說公司領導想要查看本月的銷售情況,而現在資料庫中暫時還沒有銷售數據的存在,那麼就可以創建一個銷售數據上報的流程,讓各個銷售員將銷售數據上報上來,如果公司銷售人員不多,那麼就可以使用聯合填報上報,直接為每個銷售人員綁定上報任務,但是當公司人員很多的時候,大家並不知道每個銷售人員的具體情況,那麼此時就

Java中 ArrayList、Vector和LinkedList 的使用和详解!

转自:[http://blog.csdn.net/kevon_sun/article/details/7936329] 1 import java.util.*; 2 3 /** 4 * (1)ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问.数组的缺点是每个元素之间不能含有“空隙”. 5 * 当数组大小不满足时会增加存储能力,将已有数组数据复制到新的存储空间中.当从ArrayList的中间位置插入或者删除元素时,需要对数组进行拷贝,移动,代价比较高

Java中LinkedList的remove方法真的耗时O(1)吗?

这个问题其实来源于Leetcode的一道题目,也就是上一篇日志 LRU Cache.在使用LinkedList超时后,换成ArrayList居然AC了,而问题居然是在于List.remove(Object o)这个方法. 我们知道,链表和数组相比,最主要的特点就是add和remove的操作是O(1)的.Java中的链表一般使用LinkedList这个类型,数组一般使用ArrayList.它们同时implements了List这个interface,所以都有remove(int index)和re

Java面试题:Java中的集合及其继承关系

关于集合的体系是每个人都应该烂熟于心的,尤其是对我们经常使用的List,Map的原理更该如此.这里我们看这张图即可: 1.List.Set.Map是否继承自Collection接口? List.Set 是,Map 不是.Map是键值对映射容器,与List和Set有明显的区别,而Set存储的零散的元素且不允许有重复元素(数学中的集合也是如此),List是线性结构的容器,适用于按数值索引访问元素的情形. 2.阐述ArrayList.Vector.LinkedList的存储性能和特性. ArrayLi

java 中 transient 关键字意义

译文出处:Why does Java have transient variables? java 中的 transient 关键字表明了 transient 变量不应该被序列化(transient). 参考Java Language Specification, Java SE 7 Edition, Section 8.3.1.3. transient Fields: 被 transient 标记的这些变量,表明他们是某个对象中不需要被持久状态的部分(Variables may be mark

java中清空session

session.removeAttribute("sessionname")是清除SESSION里的某个属性.     session.invalidate()是让SESSION失效.     或许你可以用getAttributeNames来得到所有属性名,然后再removeAttribute 我是如下在Spring中實現的: private void initSession(HttpServletRequest request){  Enumeration em = request.

通过自己实现java中的ArrayList和LinkedList 深入理解数据结构---"表"

杂谈最基本数据结构--"表": 表结构是一种最基本的数据结构,最常见的实现是数组,几乎在每个程序每一种开发语言中都提供了数组这个顺序存储的线性表结构实现. 什么是线性表? 由0个或多个数据元素组成的有限序列.如果没有元素,称为空表,如果存在多个元素,则第一个元素无前驱,最后一个元素无后继,其他元素元素都有且只有一个前驱和后继. ArrayList和LinkedList ArrayList和LinkedList是顺序存储结构和链式存储结构的表在java语言中的实现. ArrayList提

java 中的JDK封装的数据结构和算法解析(集合类)----链表 List 之 LinkedList

List 只要有两个实现类(ArrayList 和linkedList ),ArryList是基于数组实现,LinkedList是基于链表实现,下面是小弟对LinkedList的一点理解: LinkedList :基于链表实现的集合        双链接列表实现{ @code  List}和{ @code   Deque} 接口.实现了所有可选列表操作,和许可元素(including{ @code  null}). 首先对实现的接口分析一下: Deque  (双端队列): 这种队列允许在队列头和