ArrayList类—相关操作
-
添加和删除
package cn.xiaoge.day07.demo04; /* 数组的长度不可以发生改变. 但是ArrayList集合的长度是可以随意变化的 对于ArrayList来说, 有一个尖括号<E>代表泛型 泛型: 也就是装载集合当中的所有元素, 全部是统一的什么类型 注意: 泛型只能是引用类型, 不能是基本类型. 注意事项: 对于ArrayList集合来说, 直接打印得到的不是地址值, 而是内容. 如果内容是空, 得到的是空的中括号: [] */ import java.util.ArrayList; public class Demo02ArrayList { public static void main(String[] args) { // 创建了一个ArrayList集合, 集合的名称是list, 里面装的全都是String字符串类型的数据 // 备注: 从JDK 1.7+开始, 右侧的尖括号内部可以不写内容, 但是<>本身还是要写上的. ArrayList<String> list = new ArrayList<>(); System.out.println(list); // [] // 向集合当中添加数据, 需要用到add(字符串)方法 list.add("哈哈"); list.add("嘻嘻"); System.out.println(list); // [哈哈, 嘻嘻] // 删除集合当中的元素, 需要用到remove(索引)方法 list.remove(0); System.out.println(list); // [嘻嘻] } } // 运行结果 [] [哈哈, 嘻嘻] [嘻嘻]
-
ArrayList常用方法
package cn.xiaoge.day07.demo04; /* ArrayList当中的常用方法: public boolean add(E e): 向集合当中添加元素, 参数的类型和泛型一致. 备注: 对于ArrayList集合来说, add添加动作一定是成功的, 所以返回值可用可不用. 但是对于其他集合来说, add添加动过不一定成功. public E get(int index): 从集合当中获取元素, 参数是索引编号, 就是对应位置的元素 public E remove(int index): 从集合当中删除元素, 参数是索引编号, 返回值就是被删除掉的元素 public int size(): 获取集合的尺寸长度, 返回值是集合中包含的元素个数. */ import java.util.ArrayList; public class Demo03ArrayListMethod { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); // 向集合中添加元素: add boolean success = list.add("柳岩"); System.out.println(list); // [柳岩] System.out.println("添加的动作是否成功: " + success); // true System.out.println("=============================="); list.add("高圆圆"); list.add("赵又廷"); list.add("李小璐"); list.add("贾乃亮"); System.out.println(list); // [柳岩, 高圆圆, 赵又廷, 李小璐, 贾乃亮] System.out.println("=============================="); // 从集合中获取元素: get 索引值从0开始 String name = list.get(0); System.out.println("第0号索引位置:" + name); //第0号索引位置:柳岩 System.out.println("=============================="); // 获取集合的长度尺寸, 也就是其中元素的个数 int size = list.size(); System.out.println("集合的长度是:" + size); // 集合的长度是:5 System.out.println("=============================="); // 从集合中删除元素: remove 索引值从0开始 String whoRemove = list.remove(3); System.out.println("被删除的人是:" + whoRemove); // 被删除的人是:李小璐 System.out.println(list); // [柳岩, 高圆圆, 赵又廷, 贾乃亮] } } // 运行结果 [柳岩] 添加的动作是否成功: true ============================== [柳岩, 高圆圆, 赵又廷, 李小璐, 贾乃亮] ============================== 第0号索引位置:柳岩 ============================== 集合的长度是:5 ============================== 被删除的人是:李小璐 [柳岩, 高圆圆, 赵又廷, 贾乃亮]
-
ArrayList遍历
package cn.xiaoge.day07.demo04; import java.util.ArrayList; public class Demo04ArrayListEach { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("迪丽热巴"); list.add("古力娜扎"); list.add("马尔扎哈"); // 遍历集合 for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } } } // 运行结果 迪丽热巴 古力娜扎 马尔扎哈
-
ArrayList存基本类型
package cn.xiaoge.day07.demo04; /* 如果希望像集合ArrayList当中存储基本类型数据, 必须使用基本类型对应的"包装类". 基本类型 包装类 (引用类型, 包装类都位于java.lang包下) byte Byte 不用记首字母大写 short Short 不用记首字母大写 int Integer [特殊]记下名称 long Long 不用记首字母大写 float Float 不用记首字母大写 double Double 不用记首字母大写 char Character [特殊]记下名称 boolean Boolean 不用记首字母大写 从JDK 1.5+开始, 支持自动装箱 自动拆箱. 自动装箱: 基本类型 ---> 包装类型 自动拆箱: 包装类型 ---> 基本类型 */ import java.util.ArrayList; public class Demo05ArrayListBasic { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<>(); list.add(3); list.add(4); list.add(5); list.add(6); System.out.println(list); // [3, 4, 5, 6] System.out.println("=============================="); int num = list.get(1); System.out.println("第一号元素是:" + num); // 第一号元素是:4 } } // 运行结果 [3, 4, 5, 6] ============================== 第一号元素是:4
-
ArrayList存随机数
package cn.xiaoge.day07.demo05; /* 题目: 生成6个1~33之间的司机整数, 添加到集合, 并遍历集合. 思路: 1. 需要存储6个数字, 创建一个集合, <Integer> 2. 产生随机数, 需要用到Random 3. 用到循环6次, 来产生6个随机数字: for循环 4. 循环内调用r.nextInt(int n), 参数33, 0~32, 整体+1才是1~33 5. 把数字添加到集合中: add 6. 遍历集合: for size get */ import java.util.ArrayList; import java.util.Random; public class Demo01ArrayListRandom { public static void main(String[] args) { Random r = new Random(); ArrayList<Integer> list = new ArrayList<>(); for (int i = 0; i < 6; i++) { int num = r.nextInt(33) + 1; list.add(num); } // 遍历集合 for (int i = 0; i < list.size(); i++) { System.out.print(list.get(i) + " "); } } } // 运行结果 16 21 5 5 12 28
-
Student类
package cn.xiaoge.day07.demo05; 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; } }
-
ArrayList存Student类的对象
package cn.xiaoge.day07.demo05; /* 题目: 自定义4个学生对象, 添加到集合, 并遍历 思路: 1. 自定义Student学生类, 四个部分. 2. 创建一个集合, 用来存储学生对象. 泛型: <Student> 3. 根据类, 创建4个学生对象 4. 将4个学生对象添加到集合中: add 5. 遍历集合: for size get */ import java.util.ArrayList; public class Demo02ArrayListStudent { public static void main(String[] args) { Student stu1 = new Student("柳岩", 20); Student stu2 = new Student("古力娜扎", 30); Student stu3 = new Student("杨洋", 30); Student stu4 = new Student("贾乃亮", 40); ArrayList<Student> list = new ArrayList<>(); list.add(stu1); list.add(stu2); list.add(stu3); list.add(stu4); for (int i = 0; i < list.size(); i++) { Student stu = list.get(i); System.out.println("姓名: " + stu.getName() + ", 年龄" + stu.getAge()); } } } // 运行结果 姓名: 柳岩, 年龄20 姓名: 古力娜扎, 年龄30 姓名: 杨洋, 年龄30 姓名: 贾乃亮, 年龄40
-
自定义函数打印ArrayList
package cn.xiaoge.day07.demo05; /* 题目: 定义以指定格式打印的集合的方法(ArrayList类型作为参数), 使用{}括起来, 使用@分割每个元素. 格式参照{元素@元素@元素} System.out.print(list); [柳岩, 古力娜扎, 杨洋, 贾乃亮] arrayListPrint(list); {柳岩@古力娜扎@杨洋@贾乃亮} */ import java.util.ArrayList; public class Demo03ArrayListPrint { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("柳岩"); list.add("古力娜扎"); list.add("杨洋"); list.add("贾乃亮"); // 参数是ArrayList对象list 传递的是地址 arrayListPrint(list); } /* 定义方法三要素: 返回值类想选那个: 只是进行打印而已, 没有运算, 没有结果: 所以用void 方法名称: arrayListPrint 参数列表: ArrayList */ public static void arrayListPrint(ArrayList<String> list) { System.out.print("{"); for (int i = 0; i < list.size(); i++) { if (list.size() - i == 1){ System.out.print(list.get(i)); break; } System.out.print(list.get(i) + "@"); } System.out.print("}"); } } // 运行结果 {柳岩@古力娜扎@杨洋@贾乃亮}
-
自定义函数返回ArrayList对象
package cn.xiaoge.day07.demo05; /* 题目: 用一个大集合存入20个随机数字, 然后筛选其中的偶数元素, 放到小集合当中 要求使用自定义的方法来实现筛选 分析: 1. 需要创建一个大集合,用来存储int数字:<Integer> 2. 随机数字就用Random nextInt 3. 循环20次,把随机数字放入大集合:for循环、add方法 4. 定义一个方法,用来进行筛选。 筛选:根据大集合,筛选符合要求的元素,得到小集合。 三要素 返回值类型:ArrayList小集合(里面元素个数不确定) 方法名称:getSmallList 参数列表:ArrayList大集合(装着20个随机数字) 5. 判断(if)是偶数:num % 2 == 0 6. 如果是偶数,就放到小集合当中,否则不放。 */ import java.util.ArrayList; import java.util.Random; public class Demo04ArrayListReturn { public static void main(String[] args) { ArrayList<Integer> bigList = new ArrayList<>(); Random r = new Random(); for (int i = 0; i < 20; i++) { int num = r.nextInt(100) + 1; // 1~100 bigList.add(num); } // 传递进去的bigList地址值 该方法 返回的也是地址值 ArrayList<Integer> smallList = getSmallList(bigList); System.out.println("偶数总共有多少个:" + smallList.size()); for (int i = 0; i < smallList.size(); i++) { System.out.println(smallList.get(i)); } } // 这个方法,接收大集合参数,返回小集合结果 public static ArrayList<Integer> getSmallList(ArrayList<Integer> bigList) { // 创建一个小集合,用来装偶数结果 ArrayList<Integer> smallList = new ArrayList<>(); for (int i = 0; i < bigList.size(); i++) { int num = bigList.get(i); if (num % 2 == 0) { smallList.add(num); } } return smallList; } } // 运行结果 偶数总共有多少个:12 2 98 66 46 32 68 28 28 26 4 90 32