package com.bruce.homework0226;
import com.bruce.utils.MyException;
import junit.framework.TestCase;
import org.junit.Test;
import java.util.Arrays;
import java.util.Random;
/**
* Created by Bruce.Jiao on 17-2-23.
*/
public class JuintTest extends TestCase{
@Test
public void testArrayList(){
try {
ArrayListV00 arrayList = new ArrayListV00(0);
arrayList.add("aaa");
arrayList.add("bbb");
arrayList.add("ccc");
arrayList.add("fff");
arrayList.add("ggg");
System.out.println("集合下标2处的元素:"+arrayList.get(2));
System.out.println("是否包含ccc这个元素:"+arrayList.contains("ccc"));
System.out.println("是否包含ddd这个元素:"+arrayList.contains("ddd"));
System.out.println("删除前集合大小为:"+arrayList.size());
System.out.println("删除下标2处元素前底层数组:"+arrayList);
arrayList.remove(2);
System.out.println("删除下标2处元素后底层数组:"+arrayList);
System.out.println("删除一个元素后集合大小为:"+arrayList.size());
arrayList.remove(2);
System.out.println("再删除下标2处元素后底层数组:"+arrayList);
System.out.println("集合为:"+ Arrays.toString(arrayList.toArray()));
System.out.println("集合底层数组长度:"+ arrayList.arrayLength());
// System.out.println("集合下标-1处的元素:"+arrayList.get(-1));
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void testLinkedList(){
try {
LinkedListV00<String> linkedList = new LinkedListV00<>();
linkedList.add("aaa");
linkedList.add("bbb");
linkedList.add("ccc");
linkedList.add("ddd");
System.out.println("删除index=2的元素前:"+linkedList);
System.out.println("链表尺寸"+linkedList.size());
System.out.println("拿到index=2的元素"+linkedList.get(2));
linkedList.remove(2);
System.out.println("删除index=2的元素后:"+linkedList);
} catch (MyException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void testStack(){
try {
StackV00 stack = new StackV00();
stack.push("ccc");
stack.push(null);
stack.push("bbb");
stack.push("aaa");
System.out.println("栈的大小:"+stack.size());
System.out.println("栈是否为空:"+stack.isEmpty());
System.out.println("栈是否为空:"+stack);
System.out.println(stack.pop());
System.out.println(stack.pop());
System.out.println(stack.pop());
System.out.println(stack.pop());
stack.clear();
System.out.println("清空后,栈大小:"+stack.size());
System.out.println("栈是否为空:"+stack.isEmpty());
} catch (MyException e) {
System.out.println(e);
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void testQueue(){
try {
QueueV00 queue = new QueueV00();
System.out.println("队列是否为空:"+queue.isEmpty());
queue.add("aaa");
queue.add("bbb");
queue.add("ccc");
queue.add("ddd");
System.out.println(queue);
System.out.println("queue.peek结果:"+queue.peek());
System.out.println("peek后队列长度:"+queue.length());
System.out.println("queue.poll结果:"+queue.poll());
System.out.println("poll后队列长度:"+queue.length());
System.out.println("队列是否为空:"+queue.isEmpty());
} catch (MyException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void testArrayLinked(){
try {
ArrayListV00 arrayList = new ArrayListV00();
LinkedListV00 linkedList = new LinkedListV00();
long start1 = System.currentTimeMillis();
for(int i = 0;i<10000;i++){
arrayList.add("abc"+i);
}
long end1 = System.currentTimeMillis();
for(int i = 0;i<10000;i++){
linkedList.add("abc"+i);
}
long end2 = System.currentTimeMillis();
System.out.println("ArrayList的时间:"+(end1-start1));
System.out.println("LinkedList的时间:"+(end2-end1));
} catch (MyException e) {
e.printStackTrace();
}
}
public String getRandomString(int length){
String base = "abcdefghijklmnopqrstuvwxyz0123456789";
Random random = new Random();
StringBuffer sb = new StringBuffer();
for(int i = 0;i<length;i++){
int number = random.nextInt(base.length());
sb.append(base.charAt(number));
}
return sb.toString();
}
}