对于数组而言,长度不可改变。
对于ArrayList而言,长度是可以改变的。
标准形式是:ArrayList<E>,有泛型的数据集合。(泛型只能是引用类型,不能是基本数据类型)
1.打印:
之前直接打印数组,得到的是数组的地址值。但是直接打印ArrayList,得到的是里面的内容。如果内容为空,则输出[ ],如果不为空,则输出内容。
代码示例:
public class ArrayList01 {
public static void main(String[] args) {
ArrayList list =new ArrayList<>();
System.out.println(list);
System.out.println("===================");
list.add("胡歌");
System.out.println(list);
}
}
2.常用方法:
list.add()方法:往ArrayList集合里面添加数据。
list.get(int index);从集合中获取元素,参数是索引编号,从0开始。
list.remove(int index);从集合中删除元素,参数是索引编号,从0开始。
public int size();获取集合的长度,返回值是集合中元素的个数
TIP:
1.对于ArrayList集合来说,add方法必定成功,所以返回值可用可不用。对于其他集合来说,则不一定成功。
代码示例:
import java.util.ArrayList;
public class ArrayList01 {
public static void main(String[] args) {
ArrayList list =new ArrayList<>();
System.out.println(list);
System.out.println("==================================");
list.add("胡歌"); //添加数据
System.out.println(list);
list.add("李逍遥");
list.add("景天");
list.add("重楼");
list.add("飞蓬");
System.out.println(list); //打印集合
System.out.println("==================================");
//用get()方法获取数据,用泛型接收返回的数据
String name2 = list.get(1); //下标从0开始,1代表得到第二个数据
System.out.println("集合的第二个数据名字是:"+name2);
System.out.println("==================================");
//用remove()方法获取数据,用泛型接收返回的数据
String deletename1 = list.remove(3); //下标从0开始,3代表删除第四个数据
System.out.println("集合删除的数据名字是:"+deletename1);
System.out.println(list);
System.out.println("==================================");
//获取集合的长度尺寸
int size = list.size(); //size有括号
System.out.println("集合目前的长度是:"+size);
}
}
3. ArrayList集合添加基本数据类型的方法
特殊:【Integer】整型包装类,【Character】字符型包装类
JDK1.5 +以上支持自动装箱,自动拆箱。
代码示例:
import java.util.ArrayList;
public class DemoArrayListBasic {
public static void main(String[] args) {
//添加整型数据
ArrayList array1 =new ArrayList();
array1.add(100);
array1.add(200);
array1.add(300);
System.out.println(array1);
int num2 = array1.get(1);
System.out.println("集合的二号元素是:"+num2);
array1.remove(0);
System.out.println(array1);
int size = array1.size();
System.out.println("整型集合的长度是:"+size);
}
}
4. ArrayList练习:
1.随机产生10个1~30的数字,放到整型集合中,并遍历输出
分析:
代码示例:
import java.util.ArrayList;
import java.util.Random;
public class DemoArrayListTest1 {
public static void main(String[] args) {
ArrayList list1 =new ArrayList<>();
Random r =new Random();
int range =30;
for (int i =0; i <10; i++) {
int num = r.nextInt(range)+1;
list1.add(num);
}
System.out.println(list1);
for(int i =0;i
int getnum=list1.get(i);
System.out.println("数组的第"+(i+1)+"号元素是:"+getnum);
}
}
}
2.创建4个学生对象添加到数组中,并遍历输出:
分析:
代码示例:
2.1--标准学生类:
public class Student {
private Stringname;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public Student() {
}
public StringgetName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
2.2--主函数测试:
import java.util.ArrayList;
public class DemoArrayListTest2 {
public static void main(String[] args) {
//创建泛型(学生对象)数据集合
ArrayList list2 =new ArrayList<>();
//创建学生对象
Student student01 =new Student("坂田银时",28);
Student student02 =new Student("夜兔神乐",20);
Student student03 =new Student("志村新八",21);
Student student04 =new Student("冲田总悟",21);
//向集合添加数据
list2.add(student01);
list2.add(student02);
list2.add(student03);
list2.add(student04);
//遍历集合
for (int i =0; i < list2.size(); i++) {
System.out.println("学生的姓名是:"+list2.get(i).getName()+"。学生的年龄是:"+ list2.get(i).getAge());
}
}
}
3.定义打印集合的方式:{元素1@元素2@元素3...}
代码示例:
3.1--打印方法:
private static void printArray(ArrayList list3) {
System.out.print("{");
for (int i =0; i < list3.size(); i++) {
if(i == list3.size()-1){
System.out.print(list3.get(i)+"}");
}else {
System.out.print(list3.get(i)+"@");
}
}
}
}
3.2--主函数测试:
import java.util.ArrayList;
public class DemoArrayListTest3 {
public static void main(String[] args) {
//创建集合
ArrayList list3 =new ArrayList<>();
list3.add("上条当麻");
list3.add("茵蒂克丝");
list3.add("御坂美琴");
list3.add("风斩冰华");
list3.add("白井黑子");
System.out.println(list3);
printArray(list3);
}
}
4.大集合存放20个随机的数字,然后筛选出其中的偶数放入小集合中。用自定义方法实现筛选
分析:
代码示例:
4.1--小集合方法:
private static ArrayListSmallList(ArrayList list4) {
ArrayList list =new ArrayList<>();
for (int i =0; i < list4.size(); i++) {
if((list4.get(i)%2)==0){ //判断是否为偶数
list.add(list4.get(i));
}else{
continue;
}
}
return list;
}
}
4.2--主函数测试:
import java.util.ArrayList;
import java.util.Random;
public class DemoArrayListTest4 {
public static void main(String[] args) {
ArrayList list4 =new ArrayList<>();
ArrayList smalllist =new ArrayList<>();
Random r =new Random();
int range =100;
for (int i =0; i <20; i++) {
int num = r.nextInt(range)+1;
list4.add(num);
}
System.out.println(list4);
smalllist=SmallList(list4); //接收返回的数组
System.out.println("偶数总共有"+smalllist.size()+"个:");
System.out.println(smalllist);
}
}