ArrayList集合概述和基本使用
package com.Demo03;import java.util.ArrayList;/*数组的长度不能改变但是ArrayList集合的长度是可以随意变化的对于ArrayList来说有一个尖括号<E>代表泛型泛型:也就是装在集合当中的所有元素,全部都是统一的什么类型【注意】:泛型只能是引用类型,不能是基本类型【注意事项】对于ArrayList来说,ArrayList直接打印得到的不是地址值,而是内容如果内容是空,得到是空的中括号 []*/public class Demo01ArrayList {public static void main(String[] args) {//创建了一个ArrayList集合,集合的名称是list,里面装的全部都是String类型的数据//备注:从JDK1.7+开始,右侧的尖括号内部可以不写内容,但是<>本身还是要写的ArrayList<String> list = new ArrayList<>();System.out.println(list); //[]//向集合当中添加一些数据需要用到add方法list.add("LILI");list.add("OPOP");// list.add(100) ----错误写法System.out.println(list); //[LILI, OPOP]}}
ArrayList集合的常用方法和遍历集合
package com.Demo03;import java.util.ArrayList;/*ArrayList当中的常用方法有:public boolean add(E e){}:向集合当中添加元素,参数的类型和泛型一致,返回值是布尔值(添加的操作是否成功)【备注】:对于ArrayList集合来说,添加的操作一定是成功的,所以一返回值可用可不用;但是对于其他集合(今后学习),add添加操作不一定成功public E get(int Index){}:向集合当中获取元素,参数是索引编号,返回值就是对应的位置值public E remove(int Index){}:从集合当中删除元素,参数是索引编号,返回值就是被删除的元素public int size():获取元素的尺寸长度,返回值就是集合中包含的元素个数*/public class Demo02ArrayList {public static void main(String[] args) {ArrayList<String> list = new ArrayList<>();System.out.println(list); //[]//向集合中添加元素:addboolean success =list.add("huahua");System.out.println(list); //[huahua]System.out.println("添加的操作是否成功:"+success); //true//从集合中获取元素:get,索引值从0开始list.add("yuanyuan");System.out.println("此时list的值是:"+list);String name=list.get(1); //yuanyuanSystem.out.println("第1号索引位置:"+name);//从集合中删除元素:remove,索引值从0开始String one=list.remove(0); //huahuaSystem.out.println("被删除的人是:"+one);System.out.println("删除之后list的值:"+list);//获取集合的长度:sizeint size=list.size();System.out.println("集合的长度:"+size);}}
遍历集合
package com.Demo03;import java.util.ArrayList;public class Demo03ArrayList {public static void main(String[] args) {ArrayList<String> list =new ArrayList<>();list.add("A");list.add("B");list.add("C");list.add("D");//遍历集合for (int i=0;i<list.size();i++){System.out.println(list.get(i));}}}
ArrayList存储基本数据
package com.Demo03;import java.util.ArrayList;/*如果希望向集合ArrayList当中存放基本数据类型,必须使用基本数据类型对应的“包装类”基本类型 包装类(引用类型,包装类都位于java.lang下)byte Byteshort Shortint Integerlong Longfloat Floatdouble Doublechar Characterboolean Boolean从JDK1.5+开始,支持自动装箱、自动拆箱自动装箱:基本类型--->包装类型自动拆箱:包装类型--->基本类型*/public class Demo04ArrayList {public static void main(String[] args) {ArrayList<String> listA = new ArrayList<>();// ArrayList<int> listB = new ArrayList<int>(); ---错误写法ArrayList<Integer> listB = new ArrayList<>();listB.add(100);listB.add(200);System.out.println(listB); //[100,200]int num=listB.remove(1);System.out.println("删除的数据为:"+num);}}
练习
题目一:生成6个1-33之间的随机整数,添加到集合并遍历集合
package com.Demo03;import java.util.ArrayList;import java.util.Random;public class Demo05ArrayListWork {public static void main(String[] args) {Random r=new Random();ArrayList<Integer> listA = new ArrayList<>();int i =1;//生成集合while (i<=6){int num = r.nextInt(32)+1;listA.add(num);i++;}System.out.println("生成的集合为:"+listA);//遍历集合for(int j=0;j<listA.size();j++){System.out.println("第"+j+"个元素为:"+listA.get(j));}}}
题目二:自定义4个学生对象,添加到集合中,并遍历
package com.Demo03;import java.util.ArrayList;public class Demo05ArrayListWork01 {public static void main(String[] args) {ArrayList<Student> list = new ArrayList<>();Student one = new Student("lili",15);Student two = new Student("huhu",19);Student three = new Student("keke",25);list.add(one);list.add(two);list.add(three);//遍历集合for (int i = 0; i < list.size(); i++) {Student stu = list.get(i);System.out.println("姓名:"+stu.getName()+",年龄:"+stu.getAge());}}}
题目二:定义以指定格式打印集合的方法(ArrayList类型作为参数),使用{}括起集合,使用@分隔每一个元素,格式参照{元素@元素@元素}
package com.Demo03;import java.util.ArrayList;/*定义以指定格式打印集合的方法(ArrayList类型作为参数),使用{}括起集合,使用@分隔每一个元素,格式参照{元素@元素}*/public class Demo05ArrayListWork02 {public static void main(String[] args) {ArrayList<String> list = new ArrayList<>();list.add("A");list.add("B");list.add("C");printArrayList(list);}/*定义方法的三要素:返回值类型:只是进行打印而已,没有运算,没有结果,只用void方法名称:printArrayList参数列表:ArrayList*/public static void printArrayList(ArrayList<String> list){System.out.print("{");for (int i = 0; i < list.size(); i++) {System.out.print(list.get(i));if(i==list.size()-1){System.out.println("}");}else{System.out.print("@");}}}}
题目三:用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到小集合中,要求使用自定义的方法进行筛选
package com.Demo03;/*分析:1.需要创建一个大集合,用来存储int数字,<Integer>2.随机数字用Random nextInt3.循环20次,把随机数字放入大集合,for循环、add方法4.定义一个方法,用来进行筛选筛选:根据大集合,筛选符合条件的元素,得到小集合三要素:返回类型:ArrayList小集合(里面元素个数不确定)方法名称:getSmallList参数列表:ArrayList大集合(装着20个随机数字)5.判断(if)是偶数:num%2==06.如果是偶数,就放到小集合中,否则就不放*/import java.util.ArrayList;import java.util.Random;public class Demo05ArrayListWork03 {public static void main(String[] args) {ArrayList<Integer> bigList = new ArrayList<>();Random r= new Random();for (int i = 0; i < 20; i++) {int randomNum=r.nextInt(100)+1;bigList.add(randomNum);}System.out.println(bigList);ArrayList<Integer> smallList=getSmallList(bigList);System.out.println("小集合中的元素个数为:"+smallList.size());System.out.println(smallList);}//整改方法接收大集合参数,返回小集合结果public static ArrayList<Integer> getSmallList(ArrayList<Integer> bigList){//创建一个小集合 用来装筛选结果ArrayList<Integer> smallList = new ArrayList<>();for (int i = 0; i < bigList.size(); i++) {if (bigList.get(i)%2==0){smallList.add(bigList.get(i));}}return smallList;}}
