package com.github.chaoswang.learning.java.linkedlist; import java.util.Arrays; import org.junit.Assert; import org.junit.Test; import com.github.chaoswang.learning.java.linkedlist.LinkedList; public class LinkedListTest { @Test public void testAdd(){ LinkedList<String> myList = new LinkedList<String>(); myList.add("1"); myList.add("2"); myList.add("3"); System.out.println(myList); Assert.assertEquals(3, myList.size()); myList.add("4"); System.out.println(myList); Assert.assertEquals(4, myList.size()); String str = myList.get(2); Assert.assertEquals("3", str); System.out.println(myList); } @Test public void testInsert(){ LinkedList<String> myList = new LinkedList<String>(); myList.add("2"); myList.add("4"); System.out.println(myList); myList.add(0,"1"); System.out.println(myList); String str = myList.get(2); Assert.assertEquals("4", str); myList.add(2,"3"); str = myList.get(2); System.out.println(myList); Assert.assertEquals("3", str); } @Test public void testAddFirst(){ LinkedList<String> myList = new LinkedList<String>(); myList.add("2"); myList.add("3"); myList.add("4"); System.out.println(myList); Assert.assertEquals("2", myList.get(0)); myList.addFirst("1"); Assert.assertEquals("1", myList.get(0)); System.out.println(myList); } @Test public void testRemoveFirst(){ LinkedList<String> myList = new LinkedList<String>(); myList.add("1"); myList.add("2"); myList.add("3"); myList.add("4"); String str = myList.removeFirst(); Assert.assertEquals("1", str); Assert.assertEquals("2", myList.get(0)); System.out.println(myList); } @Test public void testRemove(){ LinkedList<String> myList = new LinkedList<String>(); myList.add("1"); myList.add("2"); myList.add("3"); myList.add("4"); String str = myList.remove(2); System.out.println(myList); Assert.assertEquals("3", str); str = myList.get(2); Assert.assertEquals("4", str); Assert.assertEquals(3, myList.size()); System.out.println(myList); } @Test public void testRemoveAll(){ LinkedList<String> myList = new LinkedList<String>(); myList.add("1"); myList.add("2"); System.out.println(myList); String str = myList.removeFirst(); System.out.println(myList); Assert.assertEquals("1", str); str = myList.removeFirst(); Assert.assertEquals("2", str); Assert.assertEquals(0, myList.size()); System.out.println(myList); } /** * �Ѹ��������� * ��������Ϊ 3->7->10 , ���ú��Ϊ 10->7->3 */ @Test public void testReverse(){ LinkedList<String> myList = new LinkedList<String>(); myList.add("1"); myList.add("3"); myList.add("5"); myList.add("7"); myList.add("9"); System.out.println(myList); myList.reverse(); System.out.println(myList); } /** * ɾ��һ���������ǰ�벿�� * ���磺list = 2->5->7->8 , ɾ���Ժ��ֵΪ 7->8 * ���list = 2->5->7->8->10 ,ɾ���Ժ��ֵΪ7,8,10 */ @Test public void testRemoveFirstHalf(){ LinkedList<String> myList = new LinkedList<String>(); myList.add("2"); myList.add("5"); myList.add("7"); myList.add("8"); myList.add("10"); System.out.println(myList); myList.removeFirstHalf(); System.out.println(myList); } /** * �ӵ�i��Ԫ�ؿ�ʼ�� ɾ��length ��Ԫ�� �� ע��i��0��ʼ * ���list = 2->5->7->8->10 ,remove(2,2)�Ժ��ֵΪ2->5->10 * @param i * @param length */ @Test public void testRemoveBySpecificLength(){ LinkedList<String> myList = new LinkedList<String>(); myList.add("2"); myList.add("5"); myList.add("7"); myList.add("8"); myList.add("10"); System.out.println(myList); myList.remove(2,2); System.out.println(myList); } /** * �ٶ���ǰ�����listB���������������е����� * �ӵ�ǰ������ȡ����ЩlistB��ָ����Ԫ�� * ���統ǰ���� = 11->101->201->301->401->501->601->701 * listB = 1->3->4->6 * ���صĽ��Ӧ����[101,301,401,601] * @param list */ @Test public void testGetElements(){ LinkedList<String> myList = new LinkedList<String>(); myList.add("11"); myList.add("101"); myList.add("201"); myList.add("301"); myList.add("401"); myList.add("501"); myList.add("601"); myList.add("701"); System.out.println(myList); LinkedList testList = new LinkedList(); testList.add(1); testList.add(3); testList.add(4); testList.add(6); System.out.println(Arrays.toString(myList.getElements(testList))); } /** * ��֪�����е�Ԫ����ֵ�����������У����Ե��������洢�ṹ�� * �ӵ�ǰ��������ɾ����listB�г��ֵ�Ԫ�� * ���統ǰ���� = 11->101->201->301->401->501->601->701 * listB = [11,201,501,701] * ���صĽ��Ӧ����[101,301,401,601] * @param list */ @Test public void subtract(){ LinkedList<String> myList = new LinkedList<String>(); myList.add("11"); myList.add("101"); myList.add("201"); myList.add("301"); myList.add("401"); myList.add("501"); myList.add("601"); myList.add("701"); System.out.println(myList); LinkedList testList = new LinkedList(); testList.add(11); testList.add(201); testList.add(501); testList.add(701); myList.subtract(testList); System.out.println(myList); } /** * ���赱ǰ����Ͳ���listָ�����������Ԫ����ֵ�����������У�ͬһ���е�Ԫ��ֵ������ͬ�� * ��Ҫ������������C����Ԫ��Ϊ��ǰ�����list��Ԫ�صĽ������ұ�C�е�Ԫ������ֵ������������ * ���統ǰ���� = 11->101->201->301->401->501->601->701 * listB = [11,201,801,901] * ���صĽ��Ӧ����[11,201] * @param list */ @Test public void intersection(){ LinkedList<String> myList = new LinkedList<String>(); myList.add("11"); myList.add("101"); myList.add("201"); myList.add("301"); myList.add("401"); myList.add("501"); myList.add("601"); myList.add("701"); System.out.println(myList); LinkedList testList = new LinkedList(); testList.add(11); testList.add(201); testList.add(801); testList.add(901); System.out.println(myList.intersection(testList)); } }