天天看点

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);

	}

}           

继续阅读