java学习--ArrayList集合讲解
/*
* 数组的长度不可以发生改变
*
* 但是ArrayList集合的长度是可以随意变化的。
*
* 对于ArrayList来说,有一个尖括号<E>代表泛型。
* 泛型:也就是装在集合中的所有元素,全都是统一的什么类型。
* 注意:泛型只能是引用类型,不是基本类型
*
* 注意事项:
* 对于ArrayList集合来说,直接打印得到的不是地址值,而是内容。
* 对于内容为空,得到的是空的中括号:[]
*
* 常用方法:
* public boolean add(E e)
* public E get(int index)
* public E remove(int index) 参数时索引编号,返回值时被删除的元素
* public int size() 获取集合尺寸长度,返回值时元素个数
*
*
*
*
* 如果希望向集合ArrayList中存储基本类型,必须使用基本类型对应的包装类
* 基本类型 包装类(引用类型,都位于java.lang包下)
* byte Byte
* short Short
* int Integer 【特殊】
* long Long
* float Float
* double Double
* char Character 【特殊】
* boolean Boolean
*
* 从jdk1.5开始,支持自动装箱、自动拆箱,不需要人工干预
* 自动装箱:基本类型--->包装类型
* 自动拆箱:包装类型--->基本类型
*
*
* */
package cn.zst.day07.demo03; import java.util.ArrayList; import java.util.Random; public class Demo02ArrayList { public static void main(String[] args) { // 创建一个ArrayList集合,集合名称是list,里面装的全部是String字符串类型数据 // 备注:从JDK1.7开始,右侧尖括号<>中可以不写内容,但是<>本身要写 ArrayList<String> list = new ArrayList<>(); System.out.println(list); // [] //添加 list.add("赵丽颖"); list.add("古力娜扎"); System.out.println(list); // 获取 String name = list.get(1); System.out.println(name); //删除 String whoRemoved = list.remove(0); System.out.println(whoRemoved); System.out.println(list); //长度 int size = list.size(); System.out.println(size); // 基本类型的集合 ArrayList<Integer> listC = new ArrayList<>(); listC.add(100); listC.add(200); int n = listC.get(1); System.out.println("第一号元素是:" + n); System.out.println("============================="); //练习 //1.生成6个1~33之间的随机整数,添加集合,并遍历集合 ArrayList<Integer> listD = new ArrayList<>(); Random r = new Random(); for (int i = 0; i < 6; i++) { int num = r.nextInt(33) + 1; listD.add(num); } System.out.println(listD); for (int i = 0; i < listD.size(); i++) { System.out.println(listD.get(i)); } System.out.println("============================="); //2.自定义4个学生对象,添加到集合,并遍历集合 ArrayList<Person> listStudent = new ArrayList<>(); listStudent.add(new Person("张三", 18)); listStudent.add(new Person("李四", 28)); listStudent.add(new Person("王五", 38)); listStudent.add(new Person("赵六", 48)); System.out.println(listStudent); for (int i = 0; i < listStudent.size(); i++) { System.out.println("姓名:" + listStudent.get(i).getName() + ",年龄:" + listStudent.get(i).getAge()); } System.out.println("============================="); //3.定义以指定格式打印集合的方法(ArrayList作为参数),打印以 {元素@元素} 的字符串 ArrayList<String> listE = new ArrayList<>(); listE.add("乔峰"); listE.add("段誉"); listE.add("虚竹"); listE.add("阿朱"); listE.add("王语嫣"); listE.add("西夏公主"); System.out.println(listE); printArrayList(listE); System.out.println("============================="); // 4.用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到小集合。 // 要求使用自定义的方法来实现筛选 ArrayList<Integer> listF = new ArrayList<>(); Random ran = new Random(); for (int i = 0; i < 20; i++) { listF.add(ran.nextInt()); } System.out.println(listF); ArrayList<Integer> numbers = getEvenNumbers(listF); System.out.println(numbers); } /** * * @param list */ public static void printArrayList(ArrayList<String> list) { String str = "{"; int size = list.size(); for (int i = 0; i < size; i++) { if (i == size - 1) { str += list.get(i); } else { str += list.get(i) + "@"; } } str += "}"; System.out.println(str); } /** * * @param list * @return ArrayList<Integer> */ public static ArrayList<Integer> getEvenNumbers(ArrayList<Integer> list) { ArrayList<Integer> evenNumbersList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { if (list.get(i) % 2 == 0) { evenNumbersList.add(list.get(i)); } } return evenNumbersList; } } package cn.zst.day07.demo03; public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public Person() { } 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; } }