zoukankan      html  css  js  c++  java
  • ArrayList (容器)

    ArrayList   (容器)-----------(底层实现是数组)

    ArrayList 底层实现

    小示例(有点绕,理解了,你会进步一大截。学会看源码真的很重要)

    Human.java

    package cn.Mylist;
    
    public class Human {
        private String name;
    
        public Human(String name) {
            super();
            this.name = name;
        }
    
        public String getName() {
            return name;
        }
    
    //    public void setName(String name) {
    //        this.name = name;
    //    }
        
    }

    MyArrayList.java

    package cn.Mylist;
    /*
     * 模拟实现JDK中提供的的ArrayList类
     * */
    public class MyArrayList {
        
        
        private Object[] value;
        
        
        private int size=0;
        //定义容器;
    //    public  MyArrayList() {
    ////        value=new Object[16];
    //        this(16);    //这个构造器调下一个构造器;
    //    }
        public  MyArrayList(int m) {
            value=new Object[m];
        }
    public int size() { return size; } //给容器中放东西 public void add(Object o) { value[size]=o; size++; if(size>=value.length) { //装不下了,扩容吧! int Capacity=value.length*2+2; Object[] newlist=new Object[Capacity]; //要把老容器的值保留,把老容器的值拷入新容器; // System.arraycopy(value,0, newlist, 0, size); 第一种 for(int i=0;i<value.length;i++) { //第二种copy方式 newlist[i]=value[i]; } value=newlist; //将其赋给value,老数组value消失 } } //在容器中按照索引取东西; public Object get( int index) { return value[index]; } public static void main(String[] args) { MyArrayList mylist=new MyArrayList(2); mylist.add("haha"); mylist.add(new Human("sun")); mylist.add("sss"); mylist.add("ss"); Human h=(Human)mylist.get(1); //把Object对象强转 System.out.println(mylist.get(1)); System.out.println(h.getName()); System.out.println(mylist.size()); //查找里面的东西 } }

    打印结果:

  • 相关阅读:
    Objective-C 在Categroy中创建属性(Property)
    iOS截屏
    iOS简易图片选择器 (图片可多选,仿微信)
    iOS 3D touch 使用技巧
    soap request by afnetworking2.X/3.X
    类似网易新闻 title栏 滚动时 文字放大&变色
    iOS 用collectionview 做的无限图片滚动 广告banner适用
    iOS WebP转换工具
    微博app中常用正则表达式
    python中property(lambda self: object())简单解释
  • 原文地址:https://www.cnblogs.com/ssxblog/p/11200451.html
Copyright © 2011-2022 走看看