天天看點

Linkedlist 索引+連結清單的合并與删除

linkedList 和ArrayList性能連結
           
import java.util.LinkedList;
import java.util.ListIterator;

public class Mytext {
	public static void main(String[] args) {
		LinkedList<String> list = new LinkedList<String>();
		list.add("one");
		list.add("tow");
		list.add("three");
		ListIterator<String> it = list.listIterator();
		it.next();// 指向了one 和two中間
		int i = it.nextIndex();// 下一個使用next()傳回對像元素的索引
		System.out.println(list.get(i) + i + it.previousIndex());// 下一次使用previous();傳回對像元素的索引

	}
}           

linkedList  合并與删除

import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;

/*
 * 合并兩連結清單,并删除另一個連結清單的間隔一個元素的節點P568出自java核心技術I卷
 */
public class Mytext {
	static List<String> list = null;
	static List<String> list2 = null;

	public static void main(String[] args) {
		list = new LinkedList<String>();
		list.add("wpwp");
		list.add("wowo");
		list.add("wiwi");
		list2 = new LinkedList<String>();
		list2.add("xxxx");
		list2.add("zzzz");
		list2.add("cccc");
		ListIterator<String> it = list.listIterator();
		ListIterator<String> it2 = list2.listIterator();
		while (it2.hasNext()) {
			if (it.hasNext()) {
				it.next();
			} else
				it.add(it2.next());
		}
		System.out.println(list);
		System.out.println(it.nextIndex());
		it = list.listIterator();
		// 第一次調用疊代器時,指針會指向連結清單末尾,這是在疊代時要指針歸位
		System.out.println(it.nextIndex());
		while (it.hasNext()) {
			it.next();
			if (it.hasNext()) {
				it.next();
				it.remove();
			}
		}
		System.out.println(list);

	}

}           

繼續閱讀