ArrayList:
注意其toArray()方法返回的是一个Object[]数组,不能强制转换成其它类型。例如:
Person[] persons = (Person[])list.toArray();
因为Person[]不继承自Object[],只继承自Object;
实现一个单向链表
package com.test.array;
public class Node {
Node next;//存放下一节点的引用
String data;//存放数据
public Node(String data) {
this.data = data;
}
}
package com.test.array;
public class NodeTest {
public static void main(String[] args) {
Node node1 = new Node("node1");
Node node2 = new Node("node2");
Node node3 = new Node("node3");
node1.next = node2;
node2.next = node3;
System.out.println(node1.next.next.data); //打印节点1下一节点的下一节点
node1.next = node3;//将node2删除
System.out.println(node1.next.data);
}
}
双向链表:
package com.test.array;
public class Node {
Node previous;// 存放上一节点的引用
String data;// 存放数据
Node next;// 存放下一节点的引用
public Node(String data) {
this.data = data;
}
}
package com.test.array;
public class NodeTest {
public static void main(String[] args) {
Node node1 = new Node("node1");
Node node2 = new Node("node2");
Node node3 = new Node("node3");
node1.next = node2;
node2.previous = node1;
node2.next = node3;
node3.previous = node2;
node3.next = node1;
node1.previous = node3;
System.out.println(node1.next.next.data); //打印节点1下一节点的下一节点
//删除node2
node1.next = node3;
node3.previous = node1;
System.out.println(node1.next.data); //打印节点1下一节点的下一节点
}
}