1. 程式人生 > >Java學習筆記(24)Implementing Lists,Stacks,Queues,and Priority Queues

Java學習筆記(24)Implementing Lists,Stacks,Queues,and Priority Queues

12  publicboolean contains(E e);

13

14  /** Return the element from this list at thespecified index */

15  public E get(int index);

16

17  /** Return the index of the first matchingelement in this list.

18  * Return -1 if no match. */

19  public int indexOf(E e);

20

21  /** Return true if this list doesn't containany elements */

22  publicboolean isEmpty();

23

24  /** Return the index of the last matchingelement in this list

25  * Return -1 if no match. */

26  public int lastIndexOf(E e);

27

28  /** Remove the first occurrence of theelement e from this list.

29  * Shift any subsequent elements to the left.

30  * Return true if the element is removed. */

31  public boolean remove(E e);

32

33  /**Remove the element at the specified position in this list.

34  *Shift any subsequent elements to the left.

35  *Return the element that was removed from the list. */

36  public E remove(int index);

37

38  /**Replace the element at the specified position in this list

39  *with the specified element and return the old element. */

40  public Object set(int index, E e);

41

42  /**Return the number of elements in this list */

43  public int size();

44}


Step 3: Create the second node and append itinto the list, as shown in Figure 24.9a. To append the second node to the list,link the first node with the new node. The new node is now the tail node, soyou should move tail to point to this new node, as shown in Figure24.9b.


Step 4: Create the third node and append itto the list, as shown in Figure 24.10a. To append the new node to the list,link the last node in the list with the new node. The new node is now the tailnode, so you should move tail to point to this new node, as shown in Figure24.10b.


24.4.2 TheMyLinkedList Class


LISTING 24.5 TestMyLinkedList.java

1 public class TestMyLinkedList{

2  /** Main method */

public staticvoid main(String[] args) {

4     // Create a list for strings

5     MyLinkedList<String> list = new MyLinkedList<>();

6

7     // Add elements to the list

8     list.add("America"); // Add it to the list

9     System.out.println("(1) " + list);



24.4.4MyArrayList vs. MyLinkedList

24.4.5Variations of Linked Lists

The linked list introduced in the preceding sections isknown as a singly linked list.、 A circular, singly linked list is like a singly linked list, except that thepointer of the last node points back to the first node, as shown in Figure24.18a. Note that tail is not needed for circular linked lists. head points to the current node in the list. Insertion and deletion take placeat the current node. A good application of a circular linked list is in theoperating system that serves multiple users in a timesharing fashion. Thesystem picks a user from a circular list and grants a small amount of CPU time,then moves on to the next user in the list.


A doubly linked list contains nodes with twopointers. One points to the next node and the other to the previous node, asshown in Figure 24.18b. These two pointers are conveniently called a forward pointer and a backward pointer. Thus, a doubly linkedlist can be traversed forward and backward. 


相關推薦

Java學習筆記24Implementing ListsStacksQueuesand Priority Queues

12  publicboolean contains(E e); 13 14  /** Return the element from this list at thespecified index */ 15  public E get(int index);

java學習筆記手機歸屬地查詢的程式碼親測可用

由於公司行業主要是展會行業,展會上的觀眾註冊等,填寫基本資訊的時候會採集手機號等資訊,展會結束後我們需要做資料分析。只有通過手機號查詢歸屬地來獲取客戶的地域資訊。找了好多平臺和api,發現沒有說是能批量處理手機號資訊。最後還是找了githup上找到一個外掛,感謝

JAVA學習筆記1——a++與++a的區別

col int 演示 opera 解析 代碼 數據 ++i div 需求:此博客用於解釋i++與++i的區別。 過程: 1、名稱解釋 ++:自增,即在原有數據基礎上+1,再賦給原有數據。 2、程序演示 (1)代碼: 1 class OperateDemo 2 { 3

JAVA學習筆記

byte repl efi ber 時間 clas 區分大小寫 增強for size @SuppressWarnings("resource")是用來壓制資源泄露警告的。比如使用io類,最後沒有關閉。Set集合特點:1)無序,不隨機2)元素唯一3)沒下標註意:Collect

java學習筆記圖形用戶接口

star strong per getwidth cep runnable graphics s2d gb2 這個學期主要放在ACM比賽上去了,比賽結束了。不知不覺就15周了,這周就要java考試了,復習一下java吧。java的學習的目的還是讓我們學以致用,讓我們可以

Java學習筆記-------StringStringBufferStringBuilder區別以及映射到的同步異步相關知識

ringbuf 等待 java學習筆記 java學習 單線程 回復 改變 hashtable ble 1. String是不可變類,改變String變量中的值,相當於開辟了新的空間存放新的string變量 2. StringBuffer 可變的類,可以通過append方法改

java學習筆記:import語法

employee sign cnblogs java 調用 變量賦值 temp 職位 求職 Import 語法是給編譯器尋找特定類的適當位置的一種方法。 創建一個Employee 類,包括四個實體變量姓名(name),年齡(age),職位(designation)和薪水(s

java學習筆記:變量類型

animal 單獨使用 div 位置 fin strong pub 局部變量 變量聲明 java一共三種變量: 局部變量(本地變量):方法調用時創建,方法結束時銷毀 實例變量(全局變量):類創建時創建,類銷毀時銷毀 類變量(靜態變量):程序啟動是創建,程序銷毀時銷毀

java學習筆記:繼承

this關鍵字 log implement java學習 方式 show 使用 類型 多繼承 繼承 子類擁有父類非private的屬性,方法。 子類可以擁有自己的屬性和方法,即子類可以對父類進行擴展。 子類可以用自己的方式實現父類的方法。 Java的繼承

java學習筆記Java 流(Stream)、文件(File)和IO

用戶輸入 public 文件內容 輸出流 out 單個 java 我們 ready Java 的控制臺輸入由 System.in 完成。 為了獲得一個綁定到控制臺的字符流,你可以把 System.in 包裝在一個 BufferedReader 對象中來創建一個字符流。需要i

Linux學習筆記24

24一、管道符和作業控制管道符:前面輸出的結果交給後面的命令例如:find ./*.txt | wc -l 顯示當前文件下以.txt.結尾的文件有多少個作業控制ctrl + z 暫停當前jobs 丟在後臺的任務列出來fg 後臺的命令恢復到前臺bg 前臺的命令丟到後

Java學習筆記

fun 編程語言 java 初始化 創建 abs 就是 p s 屬性 1.1. 一個數取反的算法 a取反,~a=-(a+1)。如 ~5=-6,~(-8)=7 1.2. Java中類的訪問控制符 (類的修飾符有public、default、abstract、final,方法的

Java學習筆記---java 修飾符

技術 外部類 blog 訪問權限 定義 log 發生 繼承 指向 一、java 修飾符 Java語言提供了很多修飾符,主要分為以下兩類: 訪問修飾符 非訪問修飾符 1、訪問控制修飾符 Java中,可以使用訪問控制符來保護對類、變量、方法和構造方法的訪問。Javav支持

JAVA學習筆記——

最簡 就業 計算 開發 目錄下的文件 -- 互聯 nvi 操作 今日內容介紹 1、Java開發環境搭建 2、HelloWorld案例 3、註釋、關鍵字、標識符 4、數據(數據類型、常量) 01java語言概述 * A: java語言概述 * a: Java是sun公

java 學習筆記 java連接ZooKeeper

事件 pre case 啟動 sync -m 服務 persist 刪除節點 public class Demo2 { public static void main(String[] args) { String connectString = "192.168.

Java學習筆記:面向對象

default 直接 imp 尋找 bst 構造 時也 fin 不同 1.繼承 語法 class 父類{} class 子類 extends 父類{} 只能多層繼承,不能多重繼承,子類不能直接訪問父類中的私有成員,可通過getter和setter方法獲得 子類對象new實

ReactiveX 學習筆記24使用 RxCpp + C++ REST SDK 調用 REST API

x86-64 from space ces 測試 git clone delete let ann JSON : Placeholder JSON : Placeholder (https://jsonplaceholder.typicode.com/) 是一個用於測試的

.net轉java 學習筆記

標準 企業版 kit apple servle 筆記 app j2ee 框架 java有很多專業的詞語,這裏做一下記錄: 1:Spring : java的一個主流框架 2:J2EE : Java 2 Platform Enterprise Edition J

.net轉java 學習筆記 使用eclipse 搭建 ssh框架 struts spring hibernate )

註入 mage 面向切面 但是 模式 nbsp gen pro jdbc ssh為 struts+spring+hibernate的一個集成框架,是目前較流行的一種Web應用程序開源框架 struts :是一個基於MVC設計模式的Web應用框架,struts類似.net

Java中未給定初始值的基礎資料型別為什麼不能輸出 ——Thinking in Java學習筆記

在java程式設計思想第二章節中有這麼一個練習題:定義一個類,給定兩個無初始值的int和char型別的數值,輸出兩個數的值,驗證int和char的初始值。 我第一次是這麼做的: public static void main(String[] args) { int i; char