zoukankan      html  css  js  c++  java
  • java LinkedList 底层详细

    package cn.com.test04;
    
    
    class MylinkedList<T>{
        private Node head;// 头节点
        private int size=0;// 记录元素个数
        private Node aa;//相当于一个指针
        public void add(T o){
            Node en = new Node(o,null);
            if(head==null){
                aa=head=en;
            }else{
             aa.next=en;
             aa=en;
            }
            size++;
        }
        public void addFirst(T o){
            add(0,o);
        }
        public void add(int index,T o){
            Node en = new Node(o,null);
            if(index==0){
                en.next=head;
                head=en;
            }else{
                Node sNode = getNode(index-1);
                en.next=sNode.next;
                sNode.next=en;
            }
            size++;
        }
        public void remove(int index){
            if(index==0){
                head=head.next;
            }else{
                Node sNode = getNode(index-1);
                sNode.next=sNode.next.next;
            }
            size--;
        }
        private Node getNode(int index){
            int i=0;
            Node dd=head;
              while (dd!=null) {
                  if(index==i){
                      return dd;
                  }
                  dd=dd.next;
                i++;
              }
            return null;
        }
        public T get(int index){
            
            return (T)getNode(index).element;
        }
        public int size(){
            return size;
        }
        class Node<T>{
             T element;
             Node next;
            Node(T element, Node next) {
                this.element = element;
                this.next = next;
            }
        }
    }
    
    public class t04 {
    
        public static void main(String[] args) {
             MylinkedList<String> l= new MylinkedList<String>();// 内部是节点实现   指定位置增加   删除 效率较高     修改  查询 效率较慢
            l.add("aa");l.add("bb");l.add("cc");
            l.add(1,"dd");l.remove(1);
            for(int i=0;i<l.size();i++){
                System.out.println(l.get(i));
            }
        }
    
    }
  • 相关阅读:
    hive 调优
    nohup
    安装ElasticSearch 6.1.1 head插件
    101. Symmetric Tree
    67. Add Binary
    70. Climbing Stairs
    896. Monotonic Array
    66. Plus One
    27. Remove Element
    Apache Tomcat文件包含漏洞风险大,威胁全球约8万台服务器
  • 原文地址:https://www.cnblogs.com/anholt/p/3656004.html
Copyright © 2011-2022 走看看