基本概念
数组的长度不可以发生改变,但是ArrayList集合的长度是可以随意变化的。
对于ArrayList来说,有一个尖括号代表泛型。
泛型:也就是装在集合当中的所有元素,全都是统一的什么类型。
注意:
1.泛型只能是引用类型,不能是基本类型。
2.对于ArrayList集合来说,直接打印到的不是地址值,而是内容。如果内容是空,得到的是空的中括号。[ ]
举例:
package com.learning.demo05;
import java.util.ArrayList;
public class DemoArrayList {
public static void main(String[] args) {
ArrayList<String> arr = new ArrayList<>();
arr.add("小新");
System.out.println(arr);
}
}
ArrayList的常用方法
1.public boolean add(E e):向集合当中添加元素,参数的类型和泛型一致。返回值代表添加是否成功。备注:对于ArrayList集合来说,add添加动作一定是成功的,所以返回值可用可不用。但是对于其他集合(今后学习)来说,add添加动作不一定成功。
2.public E get(int index):从集合当中获取元素,参数是索引编号,返回值就是对应位置的元素。
3.public E remove(int index):从集合当中删除元素,参数是索引编号,返回值就是被删除掉的元素。
4.public int size():获取集合的尺寸长度,返回值是集合中包含的元素个数。(类似数组中的array.length)
举例
package com.learning.demo05;
import java.util.ArrayList;
public class ArrayListMethod {
public static void main(String[] args) {
ArrayList<String> arr = new ArrayList<>();
arr.add("小新");
arr.add("妮妮");
arr.add("风间");
for (int i = 0; i < arr.size(); i++) {
System.out.println(arr.get(i));
//遍历
}
arr.remove(1);
System.out.println(arr);
}
}
ArrayList集合存储基本数据类型
如果希望向集合ArrayList当中存储基本数据类型,必须使用基本类型对应的“包装类”。
从JDK1.5+开始,支持自动装箱,自动拆箱。
自动装箱:基本类型==>包装类型
(如:int==>integer)
自动拆箱:包装类型==>基本类型
(如:integer==>int)
| 基本类型 | 包装类(引用类型,包装都位于java.lang包下) |
|---|---|
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
| char | Character |
| boolean | Boolean |
举例
package com.learning.demo05;
import java.util.ArrayList;
public class IntArrayList {
public static void main(String[] args) {
ArrayList<Integer> arr = new ArrayList<>();
arr.add(100);
System.out.println(arr);
}
}
ArrayList练习
1.生成6个1到33之间的随机整数,添加到集合,并遍历集合。
package com.learning.demo05;
import java.util.ArrayList;
import java.util.Random;
public class ArrayListRandom {
public static void main(String[] args) {
Random ran = new Random();
ArrayList<Integer> inter = new ArrayList<>();
int num;
for (int i = 0; i < 6; i++) {
num = ran.nextInt(33) + 1;
inter.add(num);
}
for (int i = 0; i < inter.size(); i++) {
System.out.println(inter.get(i));
}
}
}
2.自定义4个学生对象,添加到集合,并遍历。
package com.learning.demo05;
import java.util.ArrayList;
public class PracticeObject {
public static void main(String[] args) {
ArrayList<PracticeClass> arr = new ArrayList<>();
PracticeClass praClass01 = new PracticeClass("小新",6);
PracticeClass praClass02 = new PracticeClass("妮妮",6);
PracticeClass praClass03 = new PracticeClass("风间",6);
PracticeClass praClass04 = new PracticeClass("正男",6);
arr.add(praClass01);
arr.add(praClass02);
arr.add(praClass03);
arr.add(praClass04);
for (int i = 0; i < arr.size(); i++) {
PracticeClass temp = arr.get(i);
System.out.println("名字:" + temp.getName() + " 年龄:" + temp.getAge() + "岁");
}
}
}
3.定义以指定格式打印集合的方法(ArrayList类型作为参数)。使用{}扩起集合,使用@分隔每一个元素。
格式参照{元素1@元素2@元素3}
package com.learning.demo05;
import java.util.ArrayList;
public class ArrayListChange {
public static void main(String[] args) {
ArrayList<String> arr = new ArrayList<>();
arr.add("小新");
arr.add("妮妮");
arr.add("风间");
printArrayList(arr);
}
public static void printArrayList(ArrayList<String> arr) {
if (arr.size() == 0){ //避免元素内没有元素的情况
System.out.println("里面并没有元素");
}else {
System.out.print("输出样式为:");
for (int i = 0; i < arr.size(); i++) {
String name = arr.get(i);
if(i == 0){ //打印第一个元素的时候加上左边的大括号
System.out.print("{" + name);
}else if (i == (arr.size() -1)){ //打印到最后一个元素的时候加上右边的大括号
System.out.println("@" + name + "}");
}else {
System.out.print("@" + name);
}
}
}
}
}
4.用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到小集合当中。
要求使用自定义的方法来实现筛选。
package com.learning.demo05;
import java.util.ArrayList;
import java.util.Random;
public class ArrayListClassify {
public static void main(String[] args) {
ArrayList<Integer> arr = new ArrayList<>(); //创建数组对象
ArrayList<Integer> temp = Classify(arr); //调用方法
System.out.println(temp); //打印验证返回值是否为小集合
}
public static ArrayList<Integer> Classify(ArrayList<Integer> arr){
int num1;
ArrayList<Integer> arr2 = new ArrayList<>();
Random ran = new Random();
for (int i = 0; i < 20; i++) {
num1 = ran.nextInt(50);
arr.add(num1); //将数字储存到大集合中
if (num1 % 2 == 0){ //判定是否为偶数,是的话存储到小集合中
arr2.add(num1);
}
}
return arr2;
}
}
634

被折叠的 条评论
为什么被折叠?



