zoukankan      html  css  js  c++  java
  • ArrayList和LinkedList

      集合List下有2个子类,分别为ArrayList和LinkedList。

      ArrayList:里面实际为数组,动态大小。即创建ArrayList时自动创建数组大小,在后续添加数据时,数组长度不够,会自动进行扩容。连续内存,增修查快、删除慢。下方分别是图形展示和部分实现代码。

     1 public class MyArrayList {
     2 
     3     Object[] objs = new Object[4];
     4     
     5     int size = 0;
     6     
     7     public void add(Object value) {
     8         
     9         //判断容量是否足够大,不够进行扩容
    10         if(size >= objs.length) {
    11             Object[] temp = new Object[objs.length*2];
    12             
    13             for(int i=0; i<objs.length; i++) {
    14                 temp[i] = objs[i];
    15             }
    16         }
    17         
    18         objs[size] = value;
    19         size++;
    20     }
    21     
    22 }
    View Code

        LinkedList:是不连续的内存,由数组和下一个结点的地址组成,头会特别标记,增修查慢、删除快。下方分别是图形展示和部分实现代码。

     1 //LinkedList中需要使用
     2 public class MyNode {
     3     
     4     Object value; //数据
     5     
     6     MyNode next;
     7     
     8     public MyNode(Object value) {
     9         this.value = value;
    10     }
    11 
    12     public Object getValue() {
    13         return value;
    14     }
    15 
    16     public void setValue(Object value) {
    17         this.value = value;
    18     }
    19 
    20     public MyNode getNext() {
    21         return next;
    22     }
    23 
    24     public void setNext(MyNode next) {
    25         this.next = next;
    26     }
    27     
    28 }
    View Code
     1 public class MyLinkedList {
     2     
     3     int size = 0;
     4     //换门标记第一个元素
     5     MyNode head = null;
     6     
     7     public void add(Object value) {
     8         MyNode node = new MyNode(value);
     9         
    10         if(null == head) {
    11             head = node;
    12         }else {
    13             MyNode temp = head;
    14             
    15             //得到最后一个结点,并把新的结点追加进去
    16             while(null != temp.getNext()) {
    17                 temp = temp.getNext();
    18             }
    19             temp.setValue(value);
    20         }
    21     }
    22 }
    View Code
  • 相关阅读:
    Redis简单梳理及集群配置
    PDF.js 详情解说
    基于SMS短信平台给手机发送短信
    linux装OpenOffice后传---中文乱码的解决
    NodeJs小试牛刀--聊天室搭建
    算法之路--最小代价生成树
    Linux系统上安装OpenOffice
    项目部署之工具使用心得
    H5 Handlebars的简单使用
    JavaWeb国际化
  • 原文地址:https://www.cnblogs.com/yolandaBlog/p/9297477.html
Copyright © 2011-2022 走看看