分类:N07_Java
LinkNode.java
package com.wpf.Test;
/**
* @Auther: wpf
* @Date: 2025/9/10 - 09 - 10 - 8:15
* @Description: com.wpf.Test
* @version: 1.0
*/
public class LinkNode {
// 上一个元素的地址:
private LinkNode pre;
// 当前存入的元素;
private Object obj;
// 下一个元素的地址;
private LinkNode next;
public LinkNode getPre() {
return pre;
}
public void setPre(LinkNode pre) {
this.pre = pre;
}
public Object getObj() {
return obj;
}
public void setObj(Object obj) {
this.obj = obj;
}
public LinkNode getNext() {
return next;
}
public void setNext(LinkNode next) {
this.next = next;
}
@Override
public String toString() {
return "LinkNode{" +
"pre=" + pre +
", obj=" + obj +
", next=" + next +
'}';
}
}MyLinkedList
package com.wpf.Test;
/**
* @Auther: wpf
* @Date: 2025/9/10 - 09 - 10 - 8:17
* @Description: com.wpf.Test
* @version: 1.0
*/
public class MyLinkedList {
// 链中一定有一个首节点
LinkNode first;
// 链中一定有一个尾节点
LinkNode last;
// 计数器
int count = 0;
// 提供一个构造器
public MyLinkedList(){
}
//添加元素
public void add(Object o){
if(first==null){
// 将添加的元素分装为一个Node对象
LinkNode n = new LinkNode();
n.setPre(null);
n.setObj(o);
n.setNext(null);
first = n;
last = n;
}else{
LinkNode n = new LinkNode();
n.setPre(last);
n.setObj(o);
n.setNext(null);
// 当前链中的最后一个节点的下一个元素也要指向n
last.setNext(n);
// 将最后一个节点变为n
last = n;
}
count++;
}
// 得到集合中的元素数量
public int getSize(){
return count;
}
// 通过下标获取元素
public Object get(int index){
LinkNode n = first;
for (int i = 0; i < index; i++) {
n = n.getNext();
}
return n.getObj();
}
}
class Test{
public static void main(String[] args) {
MyLinkedList ml = new MyLinkedList();
ml.add("aa");
ml.add("bb");
ml.add("cc");
ml.add("dd");
ml.add("ee");
System.out.println(ml.getSize());
System.out.println(ml.get(2));
}
}