ArrayList集合的概述

1.数组的长度不可以发生改变,但是ArrayList集合的长度可以随意变化
2.对于ArrayList来说,有一个尖括号代表泛型。所谓泛型也就是装在集合里的所有元素统一的数据类型
注意:泛型只能是引用类型,而不能是基本类型
3.对于ArrayList来说,直接打印得到的不是地址值而是这个集合的内容。如果内容是空的,那么得到的也就是一个空的中括号[ ]

package arrayList;import java.util.ArrayList;/*** 初始ArrayList*/
public class Demo01ArrayList {public static void main(String[] args) {//创建了一个ArrayList集合,集合的名称是list,集合里面的元素是String字符串类型//从jdk1.7开始,右边的尖括号内可以不写泛型,但是左边的尖括号必须写上ArrayList<String> list = new ArrayList<>();System.out.println(list); // []}
}

向ArrayList集合添加元素

注意:泛型已经指定集合里面的元素的数据类型,那么添加元素的时候就需要添加相应的数据类型的元素,否则会报错
格式:集合名称.add()

package arrayList;import java.util.ArrayList;/*** 初始ArrayList*/
public class Demo01ArrayList {public static void main(String[] args) {//创建了一个ArrayList集合,集合的名称是list,集合里面的元素是String字符串类型//从jdk1.7开始,右边的尖括号内可以不写泛型,但是左边的尖括号必须写上ArrayList<String> list = new ArrayList<>();System.out.println(list); // []System.out.println("========");//向集合ArrayList添加元素//注意:泛型已经指定集合里面的元素的数据类型,那么添加元素的时候就需要添加相应的数据类型的元素,否则会报错list.add("hello");System.out.println(list);//[hello]System.out.println("=========");list.add("lobster");list.add("lucky");list.add("fighting");System.out.println(list);//[hello, lobster, lucky, fighting]}
}

获取ArrayList集合当中的元素

根据索引值获取对应索引值的元素,索引值从0开始
格式:集合名称.get(索引值)

删除ArrayList集合当中的某个元素

根据索引值删除对应索引值的元素,索引值从0开始
格式:集合名称.remove(索引值)

获取ArrayList集合的长度,即该集合当中的元素个数

格式:集合名称.size()

package arrayList;import java.util.ArrayList;/*** ArrayList常用的方法* public boolean add(E e):象集合当中添加元素,参数的类型和泛型一致。返回值代表是否添加成功* 备注:对于ArrayList集合来说,add添加动作一定是成功的,所以返回值可用可不用*      但是对于其他集合来说,add添加动作不一定成功* public E get(int index):从集合当中获取元素,参数是索引编号[索引从0开始],返回值是对应位置的元素* public E remove(int index):从集合当中删除元素,参数是索引编号,返回值就是被删除的元素* public int size():获取集合的尺寸长度,返回的是集合中包含的元素个数*/
public class Demo02ArrayListMethod {public static void main(String[] args) {//创建一个ArrayList集合ArrayList<String> arrayList = new ArrayList<>();//向集合当中添加元素:addboolean result = arrayList.add("lobster");System.out.println(arrayList); // [lobster]System.out.println("是否添加成功:"+result); //是否添加成功:trueSystem.out.println("=============");arrayList.add("lucy");arrayList.add("jack");System.out.println(arrayList); //[lobster, lucy, jack]//获取集合当中的元素:get【注意:索引值从0开始】String name1 = arrayList.get(2); //获取索引值为2的元素(即第三号元素)System.out.println("索引值为2的元素是:"+name1); //索引值为2的元素是:jackString name2 = arrayList.get(0);System.out.println("索引值为0的元素是:"+name2); //索引值为0的元素是:lobster//删除集合当中的某个元素:remove【索引值从0开始】String remove_name = arrayList.remove(2);System.out.println("被删除的人是:"+remove_name); //被删除的人是:jackSystem.out.println(arrayList); //[lobster, lucy]//获取集合的长度int size = arrayList.size();System.out.println("集合当中元素的个数:"+size); //集合当中元素的个数:2}
}

遍历ArrayList集合当中的元素

package arrayList;import java.util.ArrayList;/*** 遍历ArrayList集合当中的元素*/
public class Demo03ArrayListEach {public static void main(String[] args) {//创建一个ArrayList集合ArrayList<String> arrayList = new ArrayList<>();//向集合当中添加元素arrayList.add("tom");arrayList.add("kack");arrayList.add("lucy");arrayList.add("mike");arrayList.add("lobster");//遍历集合当中的元素for (int i = 0; i < arrayList.size(); i++) { //获取集合的长度arrayList.size()System.out.println(arrayList.get(i));//根据索引值获取集合当中的元素arrayList.get(索引值)}}
}

ArrayList集合存储基本数据类型

ArrayList集合的泛型只能是引用类型,不能是基本类型。那么如果我们想要往ArrayList当中存放基本类型的数据,该怎么做?
可以通过使用基本类型对应的包装类

package arrayList;import java.util.ArrayList;/*** ArrayList集合的泛型只能是引用类型,不能是基本类型。* 那么如果我们想要往ArrayList当中存放基本类型的数据,该怎么做?* 可以通过使用基本类型对应的包装类* 基本类型         包装类* byte             Byte* short            Short* int              Integer【特殊】*long              Long*float             Float*double            Double*char              Character【特殊】*boolean           Boolean*/
public class Demo04ArrayListBasic {public static void main(String[] args) {ArrayList<Integer> arrayList = new ArrayList<>();arrayList.add(100);arrayList.add(200);arrayList.add(300);arrayList.add(400);System.out.println(arrayList); // [100, 200, 300, 400]System.out.println("=======for循环变量该集合当中的元素==========");for (int i = 0; i < arrayList.size(); i++) {System.out.println(arrayList.get(i));  //获取指定索引值对应的元素arrayList.get()}}
}

ArrayList集合的小练习

package arrayList;import java.util.ArrayList;
import java.util.Random;/*** 题目:生成6个1-33之间的随机数,存放到集合ArrayList集合当中,并遍历集合* 思路:* 1.存储6个int数的集合,所以要创建的集合对应的泛型是Integer* 2.要生成随机数,所以需要用到random* 3.要连续生成6个随机数,所以需要for循环6次* 每一次循环都要用到random的nextInt()方法* 由于生成的随机数要求是1-33之间,所以nextInt()的参数应该是33,* 此时nextInt(33)表示的是0-32,要变成1-33,需要这么做:nextInt(33)+1* 4.把数字添加到集合中,需要用add* 5.遍历集合当中的元素,需要用for、size、get*/
public class Demo05ArrayListRandom {public static void main(String[] args) {//创建一个集合ArrayList<Integer> arrayList = new ArrayList<>();//创建一个随机数对象,并生成6个随机数,随机数的范围是【1,33】Random random = new Random();for (int i = 0; i < 6; i++) {int num = random.nextInt(33)+1;arrayList.add(num);//向集合当中添加生成的随机数}//遍历集合当中的随机数for (int i = 0; i < arrayList.size(); i++) {System.out.println("生成的第"+(i+1)+"个随机数是:"+arrayList.get(i));}}
}

package arrayList;import java.util.ArrayList;/*** 自定义四个学生对象,添加到集合并遍历*思路* 1.创建Student学生类 标准类包含四个部分:成员变量、无参构造、全参构造、setter和getter* 2.创建一个集合,由于要存放的是Student对象,所以泛型是Student* 3.根据学生类创建四个对象。可以通过全参构造创建对象的时候顺带设置成员变量,或者通过setter方法设置成员变量值* 4.将成员变量添加到集合中,add* 5.遍历,for、size、get*/
public class Demo06ArrayListStudent {public static void main(String[] args) {//创建一个集合ArrayList<Student> arrayList = new ArrayList<>();//创建学生类的四个对象Student student1 = new Student("欧阳锋",21);Student student2 = new Student("洪七公",22);Student student3 = new Student("黄药师",23);Student student4 = new Student("段智兴",24);//将四个对象存放在集合里面arrayList.add(student1);arrayList.add(student2);arrayList.add(student3);arrayList.add(student4);//遍历for (int i = 0; i < arrayList.size(); i++) {Student student = arrayList.get(i);System.out.println("name:"+student.getName()+"\tage:"+student.getAge());}}}
package arrayList;/*** 标准的学生类* 标准类包含四个部分:成员变量、无参构造、全参构造、setter和getter*/
public class Student {private String name;private int age;public Student() {}public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}

运行结果

package arrayList;import java.util.ArrayList;/*** 题目:定义以指定格式打印集合的方法(arrayList作为参数),* 使用{}括起来,使用@分割每个元素,格式为{元素@元素@元素}* 即原本arraylist集合打印出来的应该是[元素1,元素2,元素3]*  现在要求打印得到的是[元素1@元素2@元素3]*/
public class Demo07ArrayListPrint {public static void main(String[] args) {//创建一个集合ArrayList<String> arrayList = new ArrayList<>();//向集合当中添加元素arrayList.add("小龙虾");arrayList.add("大闸蟹");arrayList.add("小海豚");arrayList.add("胖大海");//调用已经声明好的方法arrayListPrint()arrayListPrint(arrayList); //{小龙虾@大闸蟹@小海豚@胖大海}}/**** 方法arrayListPrint(),以arrayList集合作为参数* 只是用来打印而已,没有涉及结果,没有涉及运算,所以用void* 方法三要素:方法名、返回值类型、参数*/public static void arrayListPrint(ArrayList<String> arrayList){System.out.print("{");for (int i = 0; i < arrayList.size(); i++) {if (i == arrayList.size()-1){System.out.println(arrayList.get(i)+"}");}else {System.out.print(arrayList.get(i)+"@");}}}
}

运行结果

package arrayList;import java.util.ArrayList;
import java.util.Random;/*** 题目:* 用一个大集合存入20个随机数,然后筛选其中的偶数元素,放到小集合里面* 要求使用自定义方法来实现* 思路:* 1.创建一个大集合,存储int数字,那么泛型是Integer* 2.随机数random 以及它的nextInt方法* 3.生成20个随机数需要for循环20次,每生成一个随机数就放进大集合里面 add* 4.定义一个方法用来筛选,如果是偶数就放进小集合,否则不放*/
public class Demo08ArrayListReturn {public static void main(String[] args) {//创建一个大集合ArrayList<Integer> b_arrayList = new ArrayList<>();//创建随机数Random random = new Random();//生成20个随机数并存放到大集合里for (int i = 0; i < 20; i++) {//生成的随机数范围是1-100,  nextInt(100)值的范围是0-99int num = random.nextInt(100)+1;//向大集合里添加生成的随机数b_arrayList.add(num);}System.out.println("大集合中的元素:");System.out.println(b_arrayList);System.out.println("=================");//调用arrayListReturn方法ArrayList<Integer> s_arrayList = arrayListReturn(b_arrayList);//遍历小集合System.out.println("小集合中的元素:");for (int i = 0; i < s_arrayList.size(); i++) {System.out.println(s_arrayList.get(i));}}//定义一个方法用来筛选,参数是大集合,返回小集合结果public static ArrayList<Integer> arrayListReturn(ArrayList<Integer> list){//创建一个小集合ArrayList<Integer> s_arrayList = new ArrayList<>();//循环遍历大集合当中的元素for (int i = 0; i < list.size(); i++) {Integer m = list.get(i);//判断是否符合条件if (m % 2 == 0){s_arrayList.add(m);}}return s_arrayList;}
}

运行结果如图

初识ArrayList集合【小白学Java-学习笔记02】相关推荐

  1. 韩顺平 2021零基础学Java 学习笔记

    韩顺平 2021零基础学Java 学习笔记(1)(自用)_丨shallow丨的博客-CSDN博客_韩顺平java笔记 韩顺平 2021零基础学Java 学习笔记(2)(自用)_丨shallow丨的博客 ...

  2. java学习笔记02

    此文章是写在二轮java复习,用来总结在刚开始学java时没注意的知识点. -------------------------------------------------------------- ...

  3. 韩顺平 2021零基础学Java 学习笔记(2)(自用)

    目录 第 10 章 面向对象编程(高级部分) 第 11 章 枚举和注解 第 12 章 异常-Exception 第 13 章 常用类 第 10 章 面向对象编程(高级部分) 10.1 类变量和类方法 ...

  4. 小白的JAVA学习笔记(九)---异常处理(try/catch/finally,ducking)

    在编写程序的过程中不可能是一帆风顺的,我们可能会调用一些有风险的方法,也就是这些方法可能会发生异常.当我们知道调用某个方法有一定的可能性发生异常时,我们可以提前做好准备来处理问题程序.那我们怎么知道哪 ...

  5. 小白学NLP学习笔记-入门

    一 序 学习没有捷径可以走.对于NLP来说数学跟Python是绕不过去的.立个flag.希望能踏实的通过学习,知道别人的文章写得啥,对于工作有指导. 老师说:要具备这样的能力 现实生活中的问题==== ...

  6. 韩顺平 2022零基础学 Java 学习笔记(1)

    文章目录 续 - 第二阶段 小知识点: 1. 进程 | 线程 2. 静态方法与非静态方法的区别 ( static ) 算术运算符 << 左移 | 右移 >> 泛型 (重要) J ...

  7. Java学习笔记-02(面向对象阶段)

    1. 初认识 1.1 类和对象 在计算机的世界中,我们经常需要去描述现实中存在的物体,例如:动物.手机.水果.汽车--,这些事物往往存在着诸多复杂的功能和属性,这时候,我们就可以利用类和对象的思想在计 ...

  8. 【8-20】java学习笔记02

    others 初始化块在构造器前执行: 静态初始化块和实例变量显示初始化执行顺序为各自定义的位置: final类不能派生子类,final方法不可覆盖,final变量不可重新赋值: 判定值相等,Stri ...

  9. 2022年Java学习笔记目录

    一.2022年Java任务驱动课程 任务驱动,统摄知识点:2022年Java程序设计讲课笔记 二.2022年Java学习笔记 (一)踏上Java开发之旅 Java学习笔记1.1.1 搭建Java开发环 ...

  10. 学java怎么做笔记?如何整理java笔记?java学习笔记

    许多开始学Java编程的朋友,都是跟着视频学习的,知道要记笔记,但又不知如何下手.其实笔记主要的还是记框架以及自己能感觉到不懂得地方方便巩固加深印象,笔记不要记得密密麻麻的看着就让人感觉头疼,学习编程 ...

最新文章

  1. HTTP协议中的Range和Content-Range
  2. java代码_阿里资深工程师教你如何优化 Java 代码!
  3. python 词云手把手_手把手教你生成炫酷的词云
  4. 网络编程学习笔记(gethostbyaddr函数)
  5. 《一个程序猿的生命周期》读后感
  6. How GPUs Work
  7. python pandas常用函数_python:pandas常用功能函数操作
  8. 北京市城八区廉租住房和经济适用住房保障家庭收入、住房、资产标准已确定
  9. 获取163邮箱的邮件 并下载附件
  10. API接口安全设计方案(已实现)
  11. MacOS - 快捷键以及各种操作汇总
  12. bootstrap 垂直居中 布局_Bootstrap 4 栅格系统垂直布局
  13. 凭证录入模板-检查核算项目研发项目是否录入
  14. diy写字机器人_自己动手做一个写字机器人
  15. BFS - Dungeon Master
  16. 我们都是代码接盘侠,请做一位好前任!
  17. 基于Keras的IMDB数据集电影评论情感二分类
  18. 在知网下载时只能caj,不能pdf
  19. 【转载】经典10道c/c++语言经典笔试题(含全部所有参考答案)
  20. php 复杂表格,Linux_使用JavaScript将复杂表格导出为Excel,使用JavaScript将表格导出为Excel - phpStudy...

热门文章

  1. SNN综述(1):深度脉冲神经网络
  2. 自然语言处理之——句法分析
  3. 图解 OSPF :什么是 LSA ?
  4. 解决Xcode报错“The certificate used to sign “xxxxxx” has either expired or has been revoked“
  5. testerhome学习笔记1_互联网测试技术
  6. virt-install命令详解
  7. MySQL部署OGG
  8. 要怎样努力,才能成为很厉害的人?!
  9. 电脑WLAN/WIFI搜索不到网络
  10. sklearn--make_blobs函数及相应参数简介