JAVA集合

对象数组

集合类之ArrayList

学生管理系统

斗地主案例

NO.one 对象数组

1.1 对象数组描述

A:基本类型的数组:存储的元素为基本类型

int[] arr={1,2,3,4}

B:对象数组:存储的元素为引用类型

Student[] stus=new Student[3];

Student代表一个自定义类

Stus数组中stus[0],stus[1],stus[2]的元素数据类型为Student,

都可以指向一个Student对象

1.2 对象数组案例:

创建一个学生数组,存储三个学生对象并遍历

1.2.1 案例代码一:

packagecom.gao;/** 自动生成构造方法:

* 代码区域右键 -- Source -- Generate Constructors from Superclass... 无参构造方法

* 代码区域右键 -- Source -- Generate Constructor using Fields... 带参构造方法

* 自动生成getXxx()/setXxx():

* 代码区域右键 -- Source -- Generate Getters and Setters...*/

public classStudent {privateString name;private intage;publicStudent() {

}public Student(String name, intage) {this.name =name;this.age =age;

}publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}public intgetAge() {returnage;

}public void setAge(intage) {this.age =age;

}

}packagecom.itheima;/** 创建一个学生数组,存储三个学生对象并遍历

*

* 分析:

* A:定义学生类

* B:创建学生数组

* C:创建学生对象

* D:把学生对象作为元素赋值给学生数组

* E:遍历学生数组*/

public classStudentDemo {public static voidmain(String[] args) {//创建学生数组

Student[] students = new Student[3];//创建学生对象

Student s1 = new Student("曹操",40);

Student s2= new Student("刘备",35);

Student s3= new Student("孙权",30);//把学生对象作为元素赋值给学生数组

students[0] =s1;

students[1] =s2;

students[2] =s3;//遍历学生数组

for(int x=0; x

Student s=students[x];//System.out.println(s);

System.out.println(s.getName()+"---"+s.getAge());

}

}

}

1.3 对象数组的内存图

NO.two 集合类ArrayList

2.1 集合概述

A:我们学习的是面向对象编程语言,而面向对象编程语言对事物的描述都是通过对象来体现的。

为了方便对多个对象进行操作,我们就必须对这多个对象进行存储,而要想对多个对象进行存储,

就不能是一个基本   的变量,而应该是一个容器类型的变量。

B:StringBuilder,数组。

StringBuilder的结果只能是一个字符串类型,不一定满足我们的需求。

所以,我们目前只能选择数组了,也就是我们前面学习过的对象数组。

但是,数组的长度是固定的, 如果有时候元素的个数不确定的,我们无法定义出数组的长度,这个时候,

java就提供了集合类供我们使用。

2.2 ArrayList集合

2.2.1 ArrayList 添加新元素

2.2.1.1 案例代码二:

packagecom.gao_01;importjava.util.ArrayList;/** 为什么会出现集合类:

* 我们学习的是面向对象编程语言,而面向对象编程语言对事物的描述都是通过对象来体现的。

* 为了方便对多个对象进行操作,我们就必须对这多个对象进行存储,而要想对多个对象进行存储,

* 就不能是一个基本的变量,而应该是一个容器类型的变量。

* 到目前为止,我们学习过了哪些容器类型的数据呢?StringBuilder,数组。

* StringBuilder的结果只能是一个字符串类型,不一定满足我们的需求。

* 所以,我们目前只能选择数组了,也就是我们前面学习过的对象数组。

* 但是,数组的长度是固定的,适应不了变化的需求,那么,我们该如何选择呢?

* 这个时候,java就提供了集合类供我们使用。

*

* 集合类的特点:

* 长度可变。

*

* ArrayList:

* 大小可变数组的实现

*

* :是一种特殊的数据类型,泛型。

* 怎么用呢?

* 在出现E的地方我们使用引用数据类型替换即可

* 举例:ArrayList,ArrayList

*

* 构造方法:

* ArrayList()

*

* 添加元素:

* public boolean add(E e):添加元素

* public void add(int index,E element):在指定的索引处添加一个元素*/

public classArrayListDemo {public static voidmain(String[] args) {//创建集合对象

ArrayList array = new ArrayList();//add(E e):添加元素

array.add("hello");

array.add("world");

array.add("java");//add(int index,E element):在指定的索引处添加一个元素//array.add(1, "android");

System.out.println("array:"+array);

}

}

2.2.2 删改查方法

A:获取元素

public E get(int index):返回指定索引处的元素

B:集合长度

public int size():返回集合中的元素的个数

C:删除元素

public boolean remove(Object o):删除指定的元素,返回删除是否成功

public E remove(int index):删除指定索引处的元素,返回被删除的元素

D:修改元素

public E set(int index,E element):修改指定索引处的元素,返回被修改的元素

2.2.2.1 案例代码三:

packagecom.gao_01;importjava.util.ArrayList;/** 获取元素

* public E get(int index):返回指定索引处的元素

* 集合长度

* public int size():返回集合中的元素的个数

* 删除元素

* public boolean remove(Object o):删除指定的元素,返回删除是否成功

* public E remove(int index):删除指定索引处的元素,返回被删除的元素

* 修改元素

* public E set(int index,E element):修改指定索引处的元素,返回被修改的元素*/

public classArrayListDemo2 {public static voidmain(String[] args) {//创建集合对象

ArrayList array = new ArrayList();//添加元素

array.add("hello");

array.add("world");

array.add("java");//public E get(int index):返回指定索引处的元素//System.out.println("get:"+array.get(0));//System.out.println("get:"+array.get(1));//System.out.println("get:"+array.get(2));//public int size():返回集合中的元素的个数//System.out.println("size:"+array.size());//public boolean remove(Object o):删除指定的元素,返回删除是否成功//System.out.println("remove:"+array.remove("world"));//true//System.out.println("remove:"+array.remove("world"));//false//public E remove(int index):删除指定索引处的元素,返回被删除的元素//System.out.println("remove:"+array.remove(0));//public E set(int index,E element):修改指定索引处的元素,返回被修改的元素

System.out.println("set:"+array.set(1, "android"));//输出

System.out.println("array:"+array);

}

}

2.2.3 ArrayList遍历

集合的遍历思想和数组的遍历思想相同

循环遍历容器,依次取出里面的元素即可

2.2.3.1 案例代码四:

packagecom.gao_01;importjava.util.ArrayList;/** ArrayList集合的遍历

* 通过size()和get()配合实现的*/

public classArrayListDemo3 {public static voidmain(String[] args) {//创建集合对象

ArrayList array = new ArrayList();//添加元素

array.add("hello");

array.add("world");

array.add("java");//获取元素//原始做法

System.out.println(array.get(0));

System.out.println(arr

java 创建集合类数组_Java集合 -- ArrayList集合及应用相关推荐

  1. java创建byte数组_java.创建一个byte数组,long length = file.length(); byte[] bytes =

    导航:网站首页 > java.创建一个byte数组,long length = file.length(); byte[] bytes = 时间:2017-12-17 java.创建一个byte ...

  2. java创建byte数组_java byte[]生成

    1. ByteArrayOutputStream extends OutputStream 提供了一个byte数组,和记录写入数组值个数的类. a.实现了write(int)这个抽象函数,这里默认只写 ...

  3. java怎么把随机数放入数组_Java学习:集合的使用与数组的区别

    ArrayList 集合 ArrayList 集合 ArrayList list = new ArrayList<>(); 对于ArrayList来说,有一个尖括号代表泛型. 泛型:也就是 ...

  4. java print快捷键_Java的ArrayList集合使用---唐代诗人斗地主!!!

    一.集合如何实现斗地主? 我们现实生活中关于斗地主,首先要有一副牌,然后把牌洗一下,在然后发牌,最后抢地主!因此斗地主需要以下的5步! 创建牌盒,定义一个集合对象,用ArrayList实现 往牌盒里装 ...

  5. Java的ArrayList集合_JAVA之ArrayList集合

    /** * ArrayList集合讲解 * 集合的添加.遍历.删除 */ package com.test; import java.util.*; public class test7 { /** ...

  6. Java中的数组,列表,集合,映射,元组,记录文字

    有时,当我对JavaScript的强大功能和表现力感到兴奋时,我发现自己错过了Java世界中的一两个功能. 除了lambda表达式/闭包或任何您想称为"匿名函数"的东西之外,它还对 ...

  7. java定义list数组_Java 数组ArrayList语法

    记录一下数组ArrayList的常用语法 1.导入 import java.util.ArrayList; 2.定义数组list ArrayList list = new ArrayList();  ...

  8. java枚举类型数组_Java基础(七)泛型数组列表ArrayList与枚举类Enum

    一.泛型数组列表ArrayList 1.在Java中,ArrayList类可以解决运行时动态更改数组的问题.ArrayList使用起来有点像数组,但是在添加或删除元素时,具有自动调节数组容量的功能,而 ...

  9. java list转数组_java list 转数组

    java怎么把list转成数组 public static void listToarray() { List list = new ArrayList(); list.add("a&quo ...

最新文章

  1. 4.总结近5周以来的github上的工作情况,以图表方式分析你小组的工作情况、存在的问题及解决的方案。(尤心心)...
  2. mysql在线开启并行复制_mysql 5.7开启并行复制
  3. 把hive数据导出至mysql
  4. 数据库系统原理(第5章:数据库编程)
  5. java中的Volatile 变量
  6. 年度总结 | 小小的年度大总结!太精辟!
  7. python获取服务器文件svn版本信息_如何编程获取SVN版本号?
  8. vscode如何添加头部注释、作者注释
  9. Linux系统时间和java的时间不一致
  10. 【实验技术笔记】RNA 抽提 + 反转录PCR + PCR引物设计 + RT-qPCR
  11. 史上最全linux内核配置详解
  12. k8s初级班day2
  13. 计算机毕业设计Android的手机点名签到学生请假考勤系统(源码+系统+mysql数据库+Lw文档)
  14. Android平台第三方插件开发指导(dcloud)
  15. TFB cas:223569-31-1,聚合物光电材料
  16. win7浏览器主页修改不过来_Win7系统IE浏览器无法更改主页怎么解决?
  17. 提交代码时提示Could not read from remote repository.
  18. Windows环境下的RTX实时操作系统学习记录
  19. Linux学习入门(一)
  20. 自动汇编转c语言,【转载】CE教程之自动汇编

热门文章

  1. 克服焦虑症的6个方法
  2. 北京邮电大学2021年C语言航空售票系统
  3. understand 教程
  4. [技巧]解决vscode乱码问题
  5. 使用tushare下载指定股票日线数据并存为excel文件
  6. Latex 分式格式处理
  7. 有道云笔记分享_《有道云笔记》分享三 ——笔记应该怎么做
  8. 水利类专业怎么应用计算机,水利水电工程专业系列教材·计算机应用技术
  9. USACO 1月 2020-2021 January Contest Silver 题解
  10. tf.nn.sampled_softmax_loss用法详解