當前位置:首頁 » 操作系統 » javalinkedlist源碼

javalinkedlist源碼

發布時間: 2022-08-02 21:01:34

java中LinkedList問題

Entry<E> newEntry = new Entry<E>(e,entry,entry.previous);
這句話new一個Entry,
Entry類本身的構造方法有3個參數:(E e,Entry next,Entry previous)
對應於傳進來的3個實參 (e,entry,entry.previous)
而傳進來的entry本身是指向header.next的引用,header應該是LinkedList的
頭結點,本身無數據,它指向的next才是LinkedList鏈表的第一個數據結點
接著newEntry.previous就是指向header,然後.next=newEntry就是將header的next引用指向newEntry,
同理,newEntry.next即為傳進來的entry,即最開始的header.next,然後.previous=newEntry將enrty的previous引用指向newEntry
這樣,就完成了在header頭結點和原來的第一個結點之間插入一個結點的過程,即新插入的結點e就是header指向的第一個結點

㈡ Java LinkedList問題

這跟並發有毛關系啊,你們在哪能看出這個程序有並發?
只是在迭代的時候把尾元素刪除了,所以it.next()遍歷的元素不一致報的錯
JDK源碼
final void checkForComodification() {
if (modCount != expectedModCount)
throw new ();
}
與期待值不同報 異常

㈢ java 中的LinkedList 是雙向循環列表嗎

源代碼中:
public void addLast(E e) {
addBefore(e, header);
}
將指定元素添加到此列表的結尾
public boolean add(E e) {
addBefore(e, header);
return true;
}
所以,add是向列表尾加的

看了一下addBefore方法
應該是雙鏈表結構 不是循環雙鏈表

㈣ java源碼學習求助 - LinkedList

寫 class LinkedList 應該要自己建 class Node.

JDK API Specification 中有兩個Node, 都是interface.
這不適合你的需求. 即使想用, 也必須有 import 才行.

㈤ 求JAVA小程序設計一個鏈表結點類LinkNode,此類可以存放int、long

//幫樓主改好了。有三個類。分別放到對應的文件里。文件名要和類名相同。注意大小寫。如LinkNode.java

//第一個類
public class Content {

private int key;
private int name;
//int、long、float、double、byte、short、String、StringBuffer
public Content(int key, int name) {
this.key = key;
this.name = name;
}

public Content(int key, long name) {
this.key = key;
this.name = (int)name;
}

public Content(int key, double name) {
this.key = key;
this.name = (int)name;
}

public Content(int key, byte name) {
this.key = key;
this.name = (int)name;
}

public Content(int key, short name) {
this.key = key;
this.name = (int)name;
}

public Content(int key, String name) {
this.key = key;
this.name = Integer.parseInt(name);
}

public long getKey() {
return key;
}

public void setKey(int key) {
this.key = key;
}

public int getName() {
return name;
}

public void setName(int name) {
this.name = name;
}
}

//第二個類
import java.util.Comparator;

public class ContentComparator implements Comparator {

public int compare(Object o1, Object o2) {
// TODO Auto-generated method stub
Content c1 = (Content) o1;
Content c2 = (Content) o2;
if (c1.getName() > c2.getName()) {
return 1;
} else {
if (c1.getName() == c2.getName()) {
return 0;
} else {
return -1;
}
}
}
}

//第三個類
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class LinkNode {

public static void main(String[] args) {
// TODO Auto-generated method stub
List list = new ArrayList();

for (int i = 0 ; i < 10; i++){
int a = (int) (Math.random() * (100-1)+1);
list.add(new Content(i,a));
}

ContentComparator comp = new ContentComparator();

Collections.sort(list,comp);

Content content;
for(int i = 0; i < list.size(); i++){
content = (Content)list.get(i);
System.out.println(" Random " + content.getName());
}

}

}

㈥ 一開始學習java有必要看源代碼嗎諸如Arraylist,Linkedlist的這些源代碼

你好,看源碼是可以幫助你以後寫代碼的。如果你是剛開始學,就沒有必要看那些東西。但是你要是有能力的話,看看還是很有幫助的,你說的那幾個類,等你學習到了,最好還是看看,可以加深你對他們的理解。

㈦ Java中的linkedlist有兩個方法,element()和getFirst(),有什麼不一樣

這種最好的就是看jdk源碼和源碼上的注釋,以及編寫測試代碼實際調用測試一下。

看jdk源碼,LinkedList<E>源碼

先看getFirst()

/**
*.
*
*@
*@
*/
publicEgetFirst(){
finalNode<E>f=first;
if(f==null)
();
returnf.item;
}

看注釋Returns the first element in this list,返回列表的第一個元素,沒毛病。

然後來看element()

/**
*Retrieves,butdoesnotremove,thehead(firstelement)ofthislist.
*
*@returntheheadofthislist
*@
*@since1.5
*/
publicEelement(){
returngetFirst();
}

結果…… LinkedList 裡面 element()就是直接調用的getFirst()方法

熱點內容
linux伺服器網站 發布:2025-01-17 23:14:45 瀏覽:785
sql幾點 發布:2025-01-17 23:08:42 瀏覽:350
扣扣密碼是多少 發布:2025-01-17 23:02:57 瀏覽:646
易柚和安卓手機哪個好 發布:2025-01-17 23:02:14 瀏覽:583
linux切換root用戶 發布:2025-01-17 22:50:27 瀏覽:534
速賣通演算法 發布:2025-01-17 22:42:12 瀏覽:444
編譯中標題翻譯的特點 發布:2025-01-17 22:42:07 瀏覽:439
oppok7x激活密碼是多少 發布:2025-01-17 22:41:02 瀏覽:222
按鍵精靈腳本自動交易分解 發布:2025-01-17 22:30:33 瀏覽:14
如何恢復安卓60 發布:2025-01-17 22:27:07 瀏覽:439