12. java ArrayList类
一、ArrayList定义
java.util.ArrayList是大小可变的数组的实现,存储在内的数据成为元素。此类提供一些方法来操作内部存储的元素。ArrayList中可不断添加元素,其大小也自动增长。
// 对应ArrayList,尖括号<E>代表泛型;也就是装在集合中的所有元素,全都是统一的什么类型;
// 注意:泛型只能是引用类型,不能是基本类型
import java.util.ArrayList;
public class Demo{
public static void main(){
// 创建了一个arraylist集合,里面都是字符串数据
// jdk1.7以后,右侧尖括号内容可以不写
ArrayList<String> list = new ArrayList<>();
list.add("鸣人");
}
}
二、ArrayList常用方法
public boolean add(E e) //向集合当中添加元素,参数的类型和泛型一致
public E get(int index) //从集合当中获取元素,参数是索引编号
public E remove(int index) //从集合当中删除元素,参数是索引编号,返回值是被删掉的元素
public int size() //获取集合的尺寸长度,返回值是集合中包含的元素个数
package china.java.demo;
import java.util.ArrayList;
public class Demo01 {
public static void main(String[] args) {
ArrayList<String> list1 = new ArrayList<>();
// add操作,返回值是一个布尔值
boolean ret = list1.add("留言");
System.out.println(list1);
System.out.println("是否成功" + ret);
// 获取0号元素值
String name = list1.get(0);
System.out.println(name);
// remove掉0号元素
list1.remove(0);
System.out.println(list1);
ArrayList<String> arrayNum = new ArrayList<>();
arrayNum.add("21");
arrayNum.add("12");
arrayNum.add("122");
for (int i = 0; i < arrayNum.size(); i++) {
System.out.println(i); // 0,1,2
System.out.println(arrayNum.get(i));
}
}
}
三、ArrayList集合存储基本类型
/*
如果想向ArrayList中存储基本类型,必须使用基本类型包装类
基本类型 包装类(引用类型,包装类都位于java.lang包下)
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
从jdk1.5+开始,支持自动装箱,自动拆箱
自动装箱:基本类型->包装类型
自动拆箱:包装类型->基本类型
*/
import java.util.ArrayList;
public class Demo01 {
public static void main(String[] args) {
ArrayList<Integer> list1 = new ArrayList<>();
list1.add(100);
int num = list1.get(1);
}
}
四、ArrayList练习
// 生成6个 1-33之间随机整数,添加至集合,并遍历集合
package china.java.demo;
import java.util.ArrayList;
import java.util.Random;
public class Demo01 {
public static void main(String[] args) {
ArrayList<Integer> numList = new ArrayList<>();
Random rd = new Random();
// 生成随机数
for (int i = 0; i < 6; i++) {
int num = rd.nextInt(33) + 1;
numList.add(num);
}
// 迭代集合
for (int i = 0; i < numList.size(); i++) {
System.out.println(numList.get(i));
}
}
}
/*
思路:
1. 自定义Student学生类,四个部分
2. 创建一个集合,用来存储学生对象。泛型,<Student>
3. 根据类,创建4个学生对象
4. 将4个学生对象添加到集合,add
5. 遍历集合:for、size、get
*/
// 学生类
package china.java.demo;
public class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public Student() {
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
}
// 实现类
package china.java.demo;
import java.util.ArrayList;
public class Demo01 {
public static void main(String[] args) {
ArrayList<Student> stuList = new ArrayList<>();
Student one = new Student("洪七公", 30);
Student two = new Student("欧阳修", 20);
Student three = new Student("黄药师", 19);
Student four = new Student("段智兴", 90);
stuList.add(one);
stuList.add(two);
stuList.add(three);
stuList.add(four);
for (int i = 0; i < stuList.size(); i++) {
System.out.println(stuList.get(i).getName() + stuList.get(i).getAge());
}
}
}
// 用一个大集合存20个随机数,筛选偶数元素放入小集合中;使用自定义方法实现
/*
1. 创建一个大集合,用来存储int数字<Integer>
2. 随机数字用 Random nextInt
3. 循环20次,把随机数字放入大集合,for,add
4. 自定义方法,用来筛选
三要素:
返回值类型 ArrayList小集合(里面元素个数不确定)
方法名称getSmallList,
参数列表ArrayList大集合
*/
package china.java.demo;
import java.util.ArrayList;
import java.util.Random;
public class Demo01 {
public static void main(String[] args) {
ArrayList<Integer> bigList = new ArrayList<>();
Random rd = new Random();
// 20.fori;生成20个随机数
for (int i = 0; i < 20; i++) {
int num = rd.nextInt(100) + 1;
bigList.add(num);
}
System.out.println(getSmallList(bigList));
}
// 筛选偶数方法;此方法是处理集合的,所有返回值类型,参数都是ArrayList类型数据
public static ArrayList<Integer> getSmallList(ArrayList<Integer> list) {
ArrayList<Integer> smallList = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
if (list.get(i) % 2 == 0) {
smallList.add(list.get(i));
} else {
continue;
}
}
return smallList;
}
}
12. java ArrayList类的更多相关文章
- Java ArrayList类的简单介绍
ArrayList类的说明: ArrayList类是List接口的实现类,java.util.ArrayList集合数据存储的结构是数组结构. 特点: 元素增删慢,查找快.(由于日常开发中使用最多的功 ...
- 【译】12. Java反射——类的动态加载和重新加载
原文地址:http://tutorials.jenkov.com/java-reflection/dynamic-class-loading-reloading.html 博主最近比较忙,争取每周翻译 ...
- 语言小知识-Java ArrayList类 深度解析
· 问题 1:ArrayList 的 size 和 capacity 怎么理解? 如果把 ArrayList 看作一个杯子的话,capacity 就是杯子的容积,也就是代表杯子能装多少东西,而 siz ...
- Java ArrayList类
ArrayList对象可以用于存储一个对象列表 例子: ArrayList<String> list = new ArrayList<String>() 例子: public ...
- JDK1.8源码(五)——java.util.ArrayList 类
关于 JDK 的集合类的整体介绍可以看这张图,本篇博客我们不系统的介绍整个集合的构造,重点是介绍 ArrayList 类是如何实现的. 1.ArrayList 定义 ArrayList 是一个用数组实 ...
- Java API —— ArrayList类 & Vector类 & LinkList类
1.ArrayList类 1)ArrayList类概述 · 底层数据结构是数组,查询快,增删慢 · 线程不安全,效率高 2)ArrayList案例 ...
- Java中ArrayList类详解
1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和ILis ...
- java基础之集合框架--使用ArrayList类动态 存储数据
一.ArrayList是List接口下的一个实现类,实现了长度可变的.连续的数组:拥有数组的特性. 遵循了LIst的规则:不唯一的.有序的. 如果没有增加泛型的话,集合中可以添加任何类型的数据. 使用 ...
- Java重要类详解之ArrayList类
https://blog.csdn.net/shengmingqijiquan/article/details/52634640 一.ArrayList概述 ArrayList 是一个数组队列,相当于 ...
随机推荐
- GlusterFS 存储
GlusterFS简介: 互联网四大开源分布式文件系统分别是:MooseFS.CEPH.Lustre.GusterFS. GluterFS最早由Gluster公司开发,其目的是开发一个能为客户提供全局 ...
- ARTS-S golang函数作为参数传递
函数作为参数传递在单元测试的时候非常有用,看下面的例子. package main import "fmt" func output(f func(string, string, ...
- jquery (对内容,元素,属性,class的操作)
对内容的操作: 捕获:获得内容 text() - 设置或返回所选元素的文本内容html() - 设置或返回所选元素的内容(包括 HTML 标记)val() - 设置或返回表单字段的值. 设置:设置内容 ...
- 你不会还在用这8个错误的SQL写法吧?
1.LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方.比如对于下面简单的语句,一般 DBA 想到的办法是在 type, name, create_time 字段上加组合索引 ...
- 新安装mariadb远程登陆配置及相关问题排查
前言: 安装过程不再赘述,直接说问题,mysql的远程连接需要解决两个问题:1.允许root用户远程连接.2.允许任意ip远程连接数据库.当然,在测试和解决问题之前,得首先保证你的数据库与远程主机之间 ...
- java8-从Lamda到方法引用和构造引用
一方法引用概述 经过前面2章Lamda原理引入和Lamda解析,基本就会熟练使用Lamda表达式,这次我们更深入点.来了解一下方法引用. 方法引用是特定Lamda表达式的一种简写,其思路就是能替换La ...
- JavaScript图形实例:七彩线团
1.线团图案 设立坐标计算公式为: X=R1*COS(3α)+R2*COS(14α)) Y=R1*SIN(3α)+R2 *SIN(14α)) 再用循环依次取α值为0~2π(每次增量为0.01),计算出 ...
- Microsemi Libero使用技巧——使用FlashPro生成stp程序文件
前言 在工程代码编译完成之后,如果需要给某个芯片下载程序时,或者是工厂量产烧录程序时,我们不需要把整个工程文件给别人,而只需要把生成的下载文件给别人,然后使用FlashPro就可以单独下载程序文件了. ...
- 程序员offer沟通的4个基本原则
常柱 架构未来 你需要就一份新工作进行沟通时:比如你的薪水.福利,或者我个人最喜欢的每周工作时间缩短等,当公司问你“你想要多少?”或者“这是我们的报价,你说呢?” 最后关于薪资的谈话可能是最伤脑筋 ...
- C#线程学习笔记八:async & await入门一
一.涉及内容 async & await是C# 5.0引入的,控制台输出所使用的$符号(拼接字符串)是C# 6.0引入的,其功能类似于string.Format()方法. 二.多线程.异步.同 ...