zoukankan      html  css  js  c++  java
  • java底层实现容器

     1 package StudyCollection;
     2 
     3 /**
     4  * 底层实现简单容器
     5  * 
     6  * @author ouyang-an 谢谢尚学堂 高琪 老师
     7  */
     8 
     9 public class MakeArray {
    10     private Object[] elementData;
    11     private int size;
    12 
    13     // 无参构造器
    14     public MakeArray() {
    15         this(10);  //这里默认大小是10
    16     }
    17 
    18     // 带参构造器
    19     public MakeArray(int initialCapacity) {
    20         if (initialCapacity < 0) {
    21             try {
    22                 throw new Exception("数组越界了!");
    23             } catch (Exception e) {
    24                 e.printStackTrace();
    25             }
    26         }
    27         elementData = new Object[initialCapacity];
    28     }
    29 
    30     // add()方法
    31     public void add(Object obj) {
    32         if (size == elementData.length) {
    33             Object[] newArray = new Object[size * 2];
    34             System.arraycopy(elementData, 0, newArray, 0,
    35                     elementData.length);
    36             elementData = newArray;
    37         }
    38         elementData[size] = obj;
    39         size++;
    40     }
    41 
    42     // size方法
    43     public int size() {
    44         return size;
    45     }
    46 
    47     // 判断数组是否为空
    48     public boolean isEmpty() {
    49         return size == 0;
    50     }
    51 
    52     // 遍历
    53     public void iteratesMethod() {
    54         for (int i = 0; i < size; i++) {
    55             Object array_element = elementData[i];
    56             System.out.println(i + ":   " + array_element);
    57         }
    58     }
    59 
    60     // get方法
    61     public Object get(int index) {
    62         if (index >= size) {
    63             try {
    64                 throw new Exception();
    65             } catch (Exception e) {
    66                 e.printStackTrace();
    67             }
    68         }
    69         return elementData[index];
    70     }
    71 
    72     // set方法
    73     public Object set(int index, Object nObject) {
    74         return elementData[index] = nObject;
    75     }
    76 
    77     public static void main(String[] args) {
    78         MakeArray list = new MakeArray();
    79         list.add("11");
    80         list.add("22");
    81         list.add("33");
    82         list.add("44");
    83         list.iteratesMethod();
    84         System.out.println("------------------------");
    85         System.out.println(list.size);
    86         System.out.println("------------------------");
    87         System.out.println(list.isEmpty());
    88         System.out.println("------------------------");
    89         System.out.println(list.get(3));
    90         System.out.println("------------------------");
    91         System.out.println(list.set(2, "ouyangan"));
    92         System.out.println("------------------------");
    93         list.iteratesMethod();
    94     }
    95 }
  • 相关阅读:
    图解攻略:轻松在苹果Macbook Air上装Win7
    Redis的安装与idea中的使用
    CAD中如何裁剪需要的区域
    Layui 使用问题汇总
    Instant Run 的操作影响到了代码,导致Android App启动闪退的问题
    Android studio百度地图demo出现230错误,key校验失败
    「小程序JAVA实战」小程序注册界面的开发(29)
    「小程序JAVA实战」小程序和后台api通信(28)
    「小程序JAVA实战」小程序多媒体组件(27)
    「小程序JAVA实战」小程序导航组件(26)
  • 原文地址:https://www.cnblogs.com/Ouyangan/p/4119507.html
Copyright © 2011-2022 走看看