教女朋友学Android -- 数组:Array和ArrayList

一、普通对象

People mxm = new People("Mo Xumin",24);
People hyx = new People("Huang Yingxue",22);
  • 上面这两行代码,是我最开始给你讲的,创建两个个 'People' 对象。
  • 先简单复习一下,'People' 是 'class name'(类名),'mxm' 或 'hyx' 是变量名,代表两个 'People' 类型的对象。

他们在内存里是两个单独的对象,在内存里的状态如下图所示:

  • 每个方框代表一个 'People' 类型的对象,这时内存里有两个独立的 'People' 对象,一个的变量名是 'mxm',另一个的变量名是 'hyx'。

二、Array

People[] allpeoples = new People[5];
allpeoples[0] = mxm;
allpeoples[1] = hyx;

allpeoples[0].getName(); // 拿到值“Mo Xumin”
allpeoples[1].getName(); // 拿到值“Huang Yingxue”

上面的代码,是接着第一部分

  • 'People' 后面加了个 [ ],代表这是一个 'People' 类型的数组,'allpeoples' 是这个数组的变量名;
  • 'allpeoples' 是一个包含了 5 个 'People' 的数组;
  • 'allpeoples[0]' 可以访问该数组的第 0 个位置,把 'mxm' 放到该数组的第 0 个位置;
  • 'allpeoples[1]' 可以访问该数组的第 1 个位置,把 'hyx' 放到该数组的第 1 个位置;

执行完这段代码后,内存的情况如下图:

  • 5 个连在一起的方框,也就是有 5 个连在一起的 'People' 类型的对象;
  • 这 5 个方框连在一起,就是 'allpeoples' 代表的东西;
  • 而其中每个单独的方框,都是一个 'People' 类型的对象;
  • 其中第一个 'People' 方框是 'mxm'(因为我们执行了 'allpeoples[0] = mxm');
  • 第二个 'People' 方框是 'hyx'(因为我们执行了 'allpeoples[1] = hyx');

三、ArrayList

这个只需要简单理解,和上面Array的三行代码一一对应的关系如下:

  • Array 版
People[] allpeoples = new People[5];
allpeoples[0] = mxm; // 将数组第0个元素赋值为mxm
allpeoples[1] = hyx; // 将数组第1个元素赋值为hyx

allpeoples[0].getName(); // 拿到值“Mo Xumin”
allpeoples[1].getName(); // 拿到值“Huang Yingxue”
  • ArrayList 版
ArrayList<People> allpeoples = new ArrayList<People>(5);
allpeoples.add(mxm); // 将数组第0个元素赋值为mxm
allpeoples.add(hyx); // 将数组第1个元素赋值为hyx

allpeoples.get(0).getName(); // 拿到值“Mo Xumin”
allpeoples.get(1).getName(); // 拿到值“Huang Yingxue”
  • 你只需要理解到这个,ArrayList相当于把 'allpeoples[0]' 这种访问方式,改成了add()和get()函数
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,211评论 6 13
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • 小侄女满月了。 摇篮里睡得香甜的小丫头皮肤微微泛青,软若无骨的手心儿轻轻揪住被角,浑然不觉来看她的亲友长辈换了一批...
    王家人宁阅读 148评论 0 0
  • 文/小珞 从《太极宗师》到《战狼》的这么多年,,我一直不喜欢吴京。 就像我不喜欢成龙一样,没有什么具体的理由。 当...
    小珞的碎碎念阅读 299评论 1 3