首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java中级进阶之集合框架

Android 技术小密圈

ID : Android_Coding

关注

写在前边

大家好,今天呢就继续更新 Java 中级进阶。之所以隔一天一更新是因为抽出一天的时间自己收集、整理要分享的知识点。在收集的时候,我个人很看重知识点本身值不值得去整理,然后把这些整理地知识点用“一根线”串起来。第一,方便自己记忆和使用;第二,分享给别人,让别人看起来更有条理。「文章末附带有本人原创的知识点的层次化整理链接,知识点结构更加清晰」。

JAVA集合框架

1. ArrayList

1.1 ArrayList与数组的区别

数组的局限性:

① 如果要存放多个对象,可以使用数组,但是数组有局限性。超过数组的长度就放不下,数组放不满就浪费了。

代码:

ArrayList存放对象:

① 为了解决数组的局限性,引入容器类的概念。 最常见的容器类就是ArrayList。

② ArrayList 容器的容量会伴随着对象的增加,自动增长

③只需要不断往容器里增加学生对象即可,不用担心会出现数组的边界问题。

代码:

1.2 常用方法

① add 增加「两种方法」

☛直接add对象,把对象加在最后面:student.add(new Student("姓名"));

☛在指定位置加对象:student.add(3, “李四”);

代码:

② contains 判断是否存在

☛通过方法contains 判断一个对象是否在容器中。

☛判断标准: 是否是同一个对象,而不是name是否相同。

代码:

③ get 获取指定位置的对象

通过 get 获取指定位置的对象,如果输入的下标越界,一样会报错。

代码:

④ indexOf 获取对象所处的位置

indexOf 用于判断一个对象在 ArrayList 中所处的位置。

☛与 contains 一样,判断标准是对象是否相同,而非对象的 name 值是否相等。

代码:

⑤ remove 删除

☛remove 用于把对象从ArrayList中删除:students.remove(2);

☛remove 可以根据下标(对象)删除 ArrayList 的元素: students.remove(stu);

代码:

⑥ set 替换

set 用于替换指定位置的元素

代码:

⑦ size 获取大小

size 用于获取 ArrayList 的大小

代码:

⑧ toArray 转换为数组

toArray 可以把一个 ArrayList 对象转换为数组。

注意:如果要转换为一个 Student 数组,那么需要传递一个Student 数组类型的对象给 toArray(),这样 toArray 方法才知道,你希望转换为哪种类型的数组,否则只能转换为 Object 数组

代码:

⑨ addAll 把另一个容器所有对象都加进来

addAll 把另一个容器所有对象都加进来

代码:

⑩ clear 清空

☛clear 清空一个 ArrayList

代码:

1.3 List 接口

ArrayList 和 List:

① ArrayList 实现了接口 List。

② 常见的写法会把引用声明为接口 List 类型。

③ 注意:是 java.util.List,而不是 java.awt.List。

代码:

List接口的方法:

① 因为 ArrayList 实现了 List 接口,所以List接口的方法 ArrayList都实现了。

② 在 ArrayList 常用方法章节有详细的讲解

1.4 List接口

泛型 Generic:

① 不指定泛型的容器,可以存放任何类型的元素

② 指定了泛型的容器,只能存放指定类型的元素以及其子类

泛型的简写:

① 为了不使编译器出现警告,需要前后都使用泛型

② 不过JDK7提供了一个可以略微减少代码量的泛型简写方式

1.5 遍历

用 for 循环遍历:

① 通过前面的学习,知道了可以用 size() 和 get() 分别得到大小,和获取指定位置的元素,结合 for 循环就可以遍历出 ArrayList 的内容

代码:

迭代器遍历:

① 使用迭代器 Iterator 遍历集合中的元素

代码:

用增强型 for 循环:

① 使用增强型 for 循环可以非常方便的遍历 ArrayLis t中的元素,这是很多开发人员的首选。

② 不过增强型 for 循环也有不足:无法用来进行 ArrayList 的初始化,无法得知当前是第几个元素了,当需要只打印单数元素的时候,就做不到了。 必须再自定下标变量。

代码:

注意:原创不易,请勿用作商业用途!

层次图链接:「用浏览器打开」

https://mubu.com/doc/2w_vBSmfp0

https://mubu.com/doc/HOrW71Q-4

公众号回复「密码」即可查看小编原创知识层次图密码

公众号回复:「进群」 拉你进群

「群中更多实际项目等你组队来体验」

一个不甘平凡的码农

Not an ordinary code farmer

职场丨发现丨习惯丨认知

让学习成为习惯,让编程拥有温度

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180524G1WO3U00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券