ArrayList集合概述和基本使用

  1. package com.Demo03;
  2. import java.util.ArrayList;
  3. /*
  4. 数组的长度不能改变
  5. 但是ArrayList集合的长度是可以随意变化的
  6. 对于ArrayList来说有一个尖括号<E>代表泛型
  7. 泛型:也就是装在集合当中的所有元素,全部都是统一的什么类型
  8. 【注意】:泛型只能是引用类型,不能是基本类型
  9. 【注意事项】
  10. 对于ArrayList来说,ArrayList直接打印得到的不是地址值,而是内容
  11. 如果内容是空,得到是空的中括号 []
  12. */
  13. public class Demo01ArrayList {
  14. public static void main(String[] args) {
  15. //创建了一个ArrayList集合,集合的名称是list,里面装的全部都是String类型的数据
  16. //备注:从JDK1.7+开始,右侧的尖括号内部可以不写内容,但是<>本身还是要写的
  17. ArrayList<String> list = new ArrayList<>();
  18. System.out.println(list); //[]
  19. //向集合当中添加一些数据需要用到add方法
  20. list.add("LILI");
  21. list.add("OPOP");
  22. // list.add(100) ----错误写法
  23. System.out.println(list); //[LILI, OPOP]
  24. }
  25. }

ArrayList集合的常用方法和遍历集合

  1. package com.Demo03;
  2. import java.util.ArrayList;
  3. /*
  4. ArrayList当中的常用方法有:
  5. public boolean add(E e){}:向集合当中添加元素,参数的类型和泛型一致,返回值是布尔值(添加的操作是否成功)
  6. 【备注】:对于ArrayList集合来说,添加的操作一定是成功的,所以一返回值可用可不用;
  7. 但是对于其他集合(今后学习),add添加操作不一定成功
  8. public E get(int Index){}:向集合当中获取元素,参数是索引编号,返回值就是对应的位置值
  9. public E remove(int Index){}:从集合当中删除元素,参数是索引编号,返回值就是被删除的元素
  10. public int size():获取元素的尺寸长度,返回值就是集合中包含的元素个数
  11. */
  12. public class Demo02ArrayList {
  13. public static void main(String[] args) {
  14. ArrayList<String> list = new ArrayList<>();
  15. System.out.println(list); //[]
  16. //向集合中添加元素:add
  17. boolean success =list.add("huahua");
  18. System.out.println(list); //[huahua]
  19. System.out.println("添加的操作是否成功:"+success); //true
  20. //从集合中获取元素:get,索引值从0开始
  21. list.add("yuanyuan");
  22. System.out.println("此时list的值是:"+list);
  23. String name=list.get(1); //yuanyuan
  24. System.out.println("第1号索引位置:"+name);
  25. //从集合中删除元素:remove,索引值从0开始
  26. String one=list.remove(0); //huahua
  27. System.out.println("被删除的人是:"+one);
  28. System.out.println("删除之后list的值:"+list);
  29. //获取集合的长度:size
  30. int size=list.size();
  31. System.out.println("集合的长度:"+size);
  32. }
  33. }

遍历集合

  1. package com.Demo03;
  2. import java.util.ArrayList;
  3. public class Demo03ArrayList {
  4. public static void main(String[] args) {
  5. ArrayList<String> list =new ArrayList<>();
  6. list.add("A");
  7. list.add("B");
  8. list.add("C");
  9. list.add("D");
  10. //遍历集合
  11. for (int i=0;i<list.size();i++){
  12. System.out.println(list.get(i));
  13. }
  14. }
  15. }

ArrayList存储基本数据

  1. package com.Demo03;
  2. import java.util.ArrayList;
  3. /*
  4. 如果希望向集合ArrayList当中存放基本数据类型,必须使用基本数据类型对应的“包装类”
  5. 基本类型 包装类(引用类型,包装类都位于java.lang下)
  6. byte Byte
  7. short Short
  8. int Integer
  9. long Long
  10. float Float
  11. double Double
  12. char Character
  13. boolean Boolean
  14. 从JDK1.5+开始,支持自动装箱、自动拆箱
  15. 自动装箱:基本类型--->包装类型
  16. 自动拆箱:包装类型--->基本类型
  17. */
  18. public class Demo04ArrayList {
  19. public static void main(String[] args) {
  20. ArrayList<String> listA = new ArrayList<>();
  21. // ArrayList<int> listB = new ArrayList<int>(); ---错误写法
  22. ArrayList<Integer> listB = new ArrayList<>();
  23. listB.add(100);
  24. listB.add(200);
  25. System.out.println(listB); //[100,200]
  26. int num=listB.remove(1);
  27. System.out.println("删除的数据为:"+num);
  28. }
  29. }

练习

题目一:生成6个1-33之间的随机整数,添加到集合并遍历集合

  1. package com.Demo03;
  2. import java.util.ArrayList;
  3. import java.util.Random;
  4. public class Demo05ArrayListWork {
  5. public static void main(String[] args) {
  6. Random r=new Random();
  7. ArrayList<Integer> listA = new ArrayList<>();
  8. int i =1;
  9. //生成集合
  10. while (i<=6){
  11. int num = r.nextInt(32)+1;
  12. listA.add(num);
  13. i++;
  14. }
  15. System.out.println("生成的集合为:"+listA);
  16. //遍历集合
  17. for(int j=0;j<listA.size();j++){
  18. System.out.println("第"+j+"个元素为:"+listA.get(j));
  19. }
  20. }
  21. }

题目二:自定义4个学生对象,添加到集合中,并遍历

  1. package com.Demo03;
  2. import java.util.ArrayList;
  3. public class Demo05ArrayListWork01 {
  4. public static void main(String[] args) {
  5. ArrayList<Student> list = new ArrayList<>();
  6. Student one = new Student("lili",15);
  7. Student two = new Student("huhu",19);
  8. Student three = new Student("keke",25);
  9. list.add(one);
  10. list.add(two);
  11. list.add(three);
  12. //遍历集合
  13. for (int i = 0; i < list.size(); i++) {
  14. Student stu = list.get(i);
  15. System.out.println("姓名:"+stu.getName()+",年龄:"+stu.getAge());
  16. }
  17. }
  18. }

题目二:定义以指定格式打印集合的方法(ArrayList类型作为参数),使用{}括起集合,使用@分隔每一个元素,格式参照{元素@元素@元素}

  1. package com.Demo03;
  2. import java.util.ArrayList;
  3. /*
  4. 定义以指定格式打印集合的方法(ArrayList类型作为参数),使用{}括起集合,
  5. 使用@分隔每一个元素,格式参照{元素@元素}
  6. */
  7. public class Demo05ArrayListWork02 {
  8. public static void main(String[] args) {
  9. ArrayList<String> list = new ArrayList<>();
  10. list.add("A");
  11. list.add("B");
  12. list.add("C");
  13. printArrayList(list);
  14. }
  15. /*
  16. 定义方法的三要素:
  17. 返回值类型:只是进行打印而已,没有运算,没有结果,只用void
  18. 方法名称:printArrayList
  19. 参数列表:ArrayList
  20. */
  21. public static void printArrayList(ArrayList<String> list){
  22. System.out.print("{");
  23. for (int i = 0; i < list.size(); i++) {
  24. System.out.print(list.get(i));
  25. if(i==list.size()-1){
  26. System.out.println("}");
  27. }else{
  28. System.out.print("@");
  29. }
  30. }
  31. }
  32. }

题目三:用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到小集合中,要求使用自定义的方法进行筛选

  1. package com.Demo03;
  2. /*
  3. 分析:
  4. 1.需要创建一个大集合,用来存储int数字,<Integer>
  5. 2.随机数字用Random nextInt
  6. 3.循环20次,把随机数字放入大集合,for循环、add方法
  7. 4.定义一个方法,用来进行筛选
  8. 筛选:根据大集合,筛选符合条件的元素,得到小集合
  9. 三要素:
  10. 返回类型:ArrayList小集合(里面元素个数不确定)
  11. 方法名称:getSmallList
  12. 参数列表:ArrayList大集合(装着20个随机数字)
  13. 5.判断(if)是偶数:num%2==0
  14. 6.如果是偶数,就放到小集合中,否则就不放
  15. */
  16. import java.util.ArrayList;
  17. import java.util.Random;
  18. public class Demo05ArrayListWork03 {
  19. public static void main(String[] args) {
  20. ArrayList<Integer> bigList = new ArrayList<>();
  21. Random r= new Random();
  22. for (int i = 0; i < 20; i++) {
  23. int randomNum=r.nextInt(100)+1;
  24. bigList.add(randomNum);
  25. }
  26. System.out.println(bigList);
  27. ArrayList<Integer> smallList=getSmallList(bigList);
  28. System.out.println("小集合中的元素个数为:"+smallList.size());
  29. System.out.println(smallList);
  30. }
  31. //整改方法接收大集合参数,返回小集合结果
  32. public static ArrayList<Integer> getSmallList(ArrayList<Integer> bigList){
  33. //创建一个小集合 用来装筛选结果
  34. ArrayList<Integer> smallList = new ArrayList<>();
  35. for (int i = 0; i < bigList.size(); i++) {
  36. if (bigList.get(i)%2==0){
  37. smallList.add(bigList.get(i));
  38. }
  39. }
  40. return smallList;
  41. }
  42. }