一、LinkedList的增删改查
package com.自己实现LinkedList.自己的LinkedList;
public class MyLinkedList {
private Node node01;
int size = 1;
public void add(Object object) {
Node node = new Node(object);
if (node01 == null) {
node01 = node;
} else {
Node temp = node01;
while (temp.getNext() != null) {
temp = temp.getNext();
}
temp.setNext(node);
size++;
}
}
public void add(int index, Object object) {
Node node = new Node(object);
Node temp = node01;
Node temp2 = node01;
int count = 0;
if (index > size) {
System.out.println("index太大了");
}else {
while (count < index) {
count++;
temp2 = temp;
temp = temp.getNext();
}
temp2.setNext(node);
node.setNext(temp);
size++;
}
}
public void replace(int index, Object object) {
Node temp = node01;
int count = 0;
while (count < index) {
count++;
temp = temp.getNext();
}
temp.setData(object);
}
public boolean remove(int index) {
Node temp = node01;
Node temp2 = node01;
int count = 0;
if (index > size) {
return false;
} else if (index == size) {
while (count < index - 1) {
count++;
temp2 = temp;
temp = temp.getNext();
}
temp2.setNext(null);
size--;
} else {
while (count < index) {
count++;
temp2 = temp;
temp = temp.getNext();
}
temp2.setNext(temp.getNext());
temp.setNext(null);
size--;
return true;
}
return true;
}
public Object show(int index) {
int count = 0;
Node temp = node01;
if (index >= size) {
return null;
} else {
while (count < index) {
count++;
temp = temp.getNext();
}
return temp.getData();
}
}
public static class Node {
private Object data;
private Node next;
public Node() {
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
public Node(Object data) {
this.data = data;
}
}
}
二、测试类
package com.自己实现LinkedList.自己的LinkedList;
public class Test {
public static void main(String[] args) {
MyLinkedList myLinkedList = new MyLinkedList();
for (int i = 0; i <10 ; i++) {
myLinkedList.add(i);
}
for (int i = 0; i < myLinkedList.size; i++) {
Object show = myLinkedList.show(i);
System.out.print(show+" ");
}
System.out.println();
System.out.println("size:"+myLinkedList.size);
myLinkedList.add(7,10);
for (int i = 0; i < myLinkedList.size; i++) {
Object show = myLinkedList.show(i);
System.out.print(show+" ");
}
System.out.println();
System.out.println("size:"+myLinkedList.size);
myLinkedList.remove(10);
for (int i = 0; i < myLinkedList.size; i++) {
Object show = myLinkedList.show(i);
System.out.print(show+" ");
}
System.out.println();
System.out.println("size:"+myLinkedList.size);
myLinkedList.replace(1,9);
for (int i = 0; i < myLinkedList.size; i++) {
Object show1 = myLinkedList.show(i);
System.out.print(show1+" ");
}
}
}
测试结果
![]()