JAVA进阶11
间歇性混吃等死,持续性踌躇满志系列-------------第11天
1、ArrayList
1 package cn.intcast.demo11; 2 3 import java.util.ArrayList; 4 5 /* 6 * 数组的长度不可以发生改变 7 * 但是ArrayList集合的长度是可以随意变化的 8 * 9 * 对于ArrayList来说,有一个尖括号<E>代表泛型。 10 * 泛型:就是装在集合当中的所有元素,全都是统一的什么类型 11 * 注:泛型只能是引用类型。不能是基本类型 12 * 对于ArrayList集合来说,直接打印得到的不是地址值,而是内容 13 * 如果内容为空,得到的是空的中括号 14 * 15 */ 16 public class Demo01ArrayList { 17 public static void main(String[] args) { 18 //创建了一个ArrayList集合,集合的名称是List,里面装的全都是String字符串类型 19 //注:从JDK 1.7+开始,右侧的尖括号内部可以不写内容但是<>本身还是要写的 20 ArrayList<String> list = new ArrayList<>(); 21 System.out.println(list); 22 } 23 }
运行结果图
尖括号的泛型定义完类型之后不能添加其他类型的集合元素,否则会报错
运行效果图
2、ArrayList集合的常用方法和遍历
1 package cn.intcast.demo11; 2 3 import java.util.ArrayList; 4 5 public class Demo01ArrayList { 6 public static void main(String[] args) { 7 ArrayList<String> list = new ArrayList<>(); 8 System.out.println(list); //[] 9 10 //向集合中添加元素 11 boolean su = list.add("赵奢"); 12 System.out.println(list); 13 System.out.println("添加是否成功:"+su); 14 list.add("张仪"); 15 list.add("苏秦"); 16 list.add("大良造"); 17 System.out.println(list); 18 19 //从集合中获取元素:get。索引值从0开始 20 String s1 = list.get(0); 21 System.out.println("第0号索引位置的值是:"+s1); 22 System.out.println("========================"); 23 //遍历集合中的元素 24 for (int i = 0; i <= 3; i++) { 25 System.out.println(list.get(i)); 26 } 27 System.out.println("========================"); 28 //从集合中删除元素:remove,索引值也是从0开始 29 String whoRemoved = list.remove(3); 30 System.out.println("被删除的人是:"+whoRemoved); 31 System.out.println(list); 32 System.out.println("========================"); 33 //获取集合的长度,即其中元素的个数 34 int Size = list.size(); 35 System.out.println("集合的长度是:"+Size); 36 System.out.println("========================"); 37 //遍历集合 38 for (int i = 0; i < Size; i++) { 39 System.out.println(list.get(i)); 40 } 41 } 42 }
运行效果图
3、ArrayLi集合存储基本数据类型
1 package cn.intcast.demo11; 2 3 import java.util.ArrayList; 4 5 public class Demo02ArrayList { 6 public static void main(String[] args) { 7 ArrayList<String> list = new ArrayList<>(); 8 //错误写法 9 // ArrayList<int> list1 = new ArrayList<int>(); 10 ArrayList<Integer> list1 = new ArrayList<>(); 11 ArrayList<Byte> list2 = new ArrayList<>(); 12 ArrayList<Short> list3 = new ArrayList<>(); 13 ArrayList<Long> list4 = new ArrayList<>(); 14 ArrayList<Float> list5 =new ArrayList<>(); 15 ArrayList<Double> list6 = new ArrayList<>(); 16 ArrayList<Character> list7 = new ArrayList<>(); 17 ArrayList<Boolean> list8 = new ArrayList<>(); 18 19 list1.add(2); 20 list1.add(3); 21 System.out.println(list1); 22 } 23 }
运行效果图
4、生成6个1-33之间的随意整数,添加到集合,并遍历集合
1 package cn.intcast.demo11; 2 3 import java.util.ArrayList; 4 import java.util.Random; 5 6 public class Demo03ArrayList { 7 public static void main(String[] args) { 8 //创建Random对象 9 Random r = new Random(); 10 //创建集合 11 ArrayList<Integer> list = new ArrayList<>(); 12 //添加随机数到集合 13 for (int i = 0; i < 6; i++) { 14 int s = r.nextInt(33) + 1; 15 list.add(s); 16 } 17 for (int i = 0; i < list.size(); i++) { 18 System.out.println(list.get(i)); 19 } 20 } 21 }
运行效果图
5、存储自定义对象
1 package cn.intcast.demo11; 2 3 public class Student { 4 private String name; 5 private String sex; 6 private int age; 7 8 public Student() { 9 } 10 11 public Student(String name, String sex, int age) { 12 this.name = name; 13 this.sex = sex; 14 this.age = age; 15 } 16 17 public String getName() { 18 return name; 19 } 20 21 public void setName(String name) { 22 this.name = name; 23 } 24 25 public String getSex() { 26 return sex; 27 } 28 29 public void setSex(String sex) { 30 this.sex = sex; 31 } 32 33 public int getAge() { 34 return age; 35 } 36 37 public void setAge(int age) { 38 this.age = age; 39 } 40 }
1 package cn.intcast.demo11; 2 3 4 import java.util.ArrayList; 5 6 public class Demo03ArrayList { 7 public static void main(String[] args) { 8 ArrayList<Student> list = new ArrayList<>(); 9 Student s1 = new Student("武松","男",22); 10 Student s2 = new Student("孙二两","女",26); 11 Student s3 = new Student("宋江","男",25); 12 Student s4 = new Student("武大浪","男",23); 13 14 list.add(s1); 15 list.add(s2); 16 list.add(s3); 17 list.add(s4); 18 19 for (int i = 0; i < list.size(); i++) { 20 Student stu = list.get(i); 21 System.out.println("姓名是:"+stu.getName()+"\n"+"性别是:"+stu.getSex()+"\n"+"年龄是:"+stu.getAge()+"\n"); 22 } 23 } 24 }
运行效果图
6、定义以指定格式打印集合的方法(ArrayList类型作为参数),使用{}扩起的集合。使用|||分隔每个元素。
1 package cn.intcast.demo11; 2 3 import java.util.ArrayList; 4 5 public class Demo04ArrayList { 6 public static void main(String[] args) { 7 ArrayList<String> list = new ArrayList<>(); 8 list.add("金庸"); 9 list.add("武侠"); 10 list.add("科幻"); 11 list.add("玄幻"); 12 System.out.println(list); 13 printArrayList(list); 14 } 15 public static void printArrayList(ArrayList<String> list){ 16 System.out.print("{"); 17 for (int i = 0; i < list.size(); i++) { 18 String name = list.get(i); 19 if (i==list.size()-1){ 20 System.out.print(name+"}"); 21 }else { 22 System.out.print(name+"|||"); 23 } 24 } 25 } 26 }
运行效果图
7、筛选集合中的随机数
1 package cn.intcast.demo11; 2 3 import java.util.ArrayList; 4 import java.util.Random; 5 6 public class Demo04ArrayList { 7 public static void main(String[] args) { 8 ArrayList<Integer> list = new ArrayList<>(); 9 Random R = new Random(); 10 for (int i = 0; i < 20; i++) { 11 int n = R.nextInt(50) + 1; 12 list.add(n); 13 } 14 ArrayList<Integer> smalllist = getSmallList(list); 15 for (int i = 0; i < smalllist.size(); i++) { 16 System.out.print(smalllist.get(i)+" "); 17 } 18 } 19 20 //这个方法接收第一个list参数,返回第二个集合结果 21 public static ArrayList<Integer> getSmallList(ArrayList<Integer> list) { 22 ArrayList<Integer> smallList = new ArrayList<>(); 23 for (int i = 0; i < list.size(); i++) { 24 int num = list.get(i); 25 if (num % 2 == 0) { 26 smallList.add(num); 27 } 28 } 29 return smallList; 30 } 31 }
运行效果图