嗨我有一個列表,讓我說這些項目{30 50 5 60 90 5 80}我想要做的是例如結合第三和第四元素,並有{30 50 65 90 5 80 }列表的組合項目
你能告訴我怎麼做?我正在使用java鏈接列表類。
嗨我有一個列表,讓我說這些項目{30 50 5 60 90 5 80}我想要做的是例如結合第三和第四元素,並有{30 50 65 90 5 80 }列表的組合項目
你能告訴我怎麼做?我正在使用java鏈接列表類。
public class Main {
public static void main(String[] args) {
List<Integer> list = new LinkedList<>();
list.add(30);
list.add(50);
list.add(5);
list.add(60);
list.add(90);
list.add(5);
list.add(80);
System.out.println(list);
combine(list, 2, 3);
System.out.println(list);
}
public static void combine(List<Integer> list, int indexA, int indexB) {
Integer a = list.get(indexA);
Integer b = list.get(indexB);
list.remove(indexB); // [30, 50, 5, 90, 5, 80]
list.add(indexA, a + b); // [30, 50, 65, 5, 90, 5, 80]
list.remove(indexB); // [30, 50, 65, 90, 5, 80]
}
}
輸出是:
[30, 50, 5, 60, 90, 5, 80]
[30, 50, 65, 90, 5, 80]
你需要檢查空值,避免NullPointerException
閱讀LinkedList的API文檔。沒有「組合」方法,但有一種方法可以刪除給定索引處的元素,以及在列表中的任何位置插入元素的方法。
http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html
我通過你的鏈接列表倒是環(在頭節點開始)。我猜測每個LinkedList對象上都有一個nextNode屬性,它允許迭代器工作。當您得到索引2(值爲5)時,找到索引2的下一個節點(值爲60),並將該值添加到索引2(值爲5使其爲65)。然後找到指向值爲90的節點(調用此newNextNode)的索引3(值爲60)的nextNode,並將索引2(值爲5)的nextNode屬性重置到該節點。
在當前鏈接中添加這兩個值,刪除這兩個鏈接並在它們的位置添加一個新鏈接。該API爲:http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html使用刪除和添加方法。
鏈表不提供通過列表執行操作的方法,它只管理列表。爲你做這件事的唯一方法是從所述位置檢索元素並添加它們,然後從列表中刪除所述元素,然後使用索引插入新項目。
這是功課?如果是這樣,你應該這樣標記它 – ControlAltDel 2012-04-28 22:59:04
它不是,我試圖做一個列表的東西,我不記得如何合併列表中的兩個元素 – 2012-04-28 23:00:50
我去年在大學研究鏈接列表,現在我似乎無法輕易記住他們,我所做的是製作清單,並知道如何從中刪除項目 – 2012-04-28 23:04:57