简单实现Java中的LinkedList
2013-11-26 16:25
134 查看
package com.cym.collection; public class MyLinkedList { private Node first ; private Node last; private int size; public void add(Object obj){ Node temp = new Node(); if (first==null) { temp.setPrevious(null); temp.setContent(obj); temp.setNext(null); first = temp; last = temp; }else{ temp.setPrevious(last); temp.setContent(obj); temp.setNext(null); last.setNext(temp); last = temp; } size++; } public int size(){ return size; } public Object get(int index){ rangeCheck(index); Node tempNode = node(index); return tempNode.content; } public boolean remove(int index){ rangeCheck(index); Node tempNode = node(index); Node prev = tempNode.previous; Node next = tempNode.next; //首尾节点检测 if(prev!=null) prev.setNext(next); if(next!=null) next.setPrevious(prev); size--;//切记 return true; } public void add(int index,Object obj){ rangeCheck(index); Node tempNode = node(index); Node newNode = new Node(); newNode.setPrevious(tempNode.getPrevious()); newNode.setContent(obj); newNode.setNext(tempNode.getNext()); Node prev = tempNode.previous; Node next = tempNode.next; //首尾节点检测 if(prev!=null) prev.setNext(newNode); if(next!=null) next.setPrevious(newNode); } public void set(int index,Object obj){ rangeCheck(index); Node tempNode = node(index); tempNode.setContent(obj); } private Node node(int index) { Node tempNode = null; if (index<size>>1) { tempNode = first; for (int i = 0; i < index; i++) { tempNode = tempNode.next; } }else { tempNode = last; for (int i = size-1; i >index; i--) { tempNode = tempNode.previous; } } return tempNode; } private void rangeCheck(int initialCapacity) { if (initialCapacity<0) { try { throw new Exception(); } catch (Exception e) { e.printStackTrace(); } } } } class Node{ Node previous; Node next; Object content; public Node getPrevious() { return previous; } public void setPrevious(Node previous) { this.previous = previous; } public Node getNext() { return next; } public void setNext(Node next) { this.next = next; } public Object getContent() { return content; } public void setContent(Object content) { this.content = content; } }
相关文章推荐
- 链表用java实现简单单链表linkedlist
- 【Java基础】用LinkedList实现一个简单栈的功能
- Java实现一个简单的链表结构------LinkedList
- java简单链表实现
- 如何用Java来进行文件切割和简单的内容过滤的实现
- Java入门到精通——基础篇之多线程实现简单的PV操作的进程同步
- Java之实现自己的ArrayList与LinkedList
- java简单实现一个日志工具类(用于服务器调试)
- 简单实现美空军也得玩的游戏-谁能坚持超过50秒?(Java) 推荐
- Dom4j解析XML简单应用,XStream实现Java、XML转换
- 每天一个数据结构——三种简单排序算法及Java实现
- 第一次动手写java的简单代码,实现输出一个空心菱形。
- java web 项目中 简单定时器实现 Timer
- Java实现一个简单的线程池
- java学生管理系统界面简单实现<一>
- Douglas-Peucker算法的简单实现(JAVA)
- Java:封装POI实现word的docx文件的简单模板功能
- 网络爬虫(四) Java实现简单的网络爬虫
- java实现一个叫简单的xml解析
- Java实现一种简单风格的按钮