Java 中ArrayList声明和常用方法,数组和集合的区别
package day7.demo1; import java.util.ArrayList; import java.util.Random; /* 注意:泛型集合中都是引用类型,不能是基本类型 如果要在集合中存储基本类型必须使用对应得包装类 基本类型------》包装类:jdk1.5+ 支持自动装箱(基本类型--》包装类型)和拆箱(包装类型---》基本类型) byte Byte short Short int Integer[特殊] long Long float Float double Double char Character[特殊] boolean Boolean * */ public class Demo01ArrayList { public static void main(String[] args) { //===================一:声明集合============ ArrayList<String> list=new ArrayList<>(); //===================二.常用方法============ //1.添加元素:对于ArrayList来说,添加一定是成功的,对于其他集合来说,不一定成功 boolean isAdd=list.add("赵丽颖"); boolean isAdd1=list.add("郑爽"); list.add("李。。。"); System.out.println(list); //2.获取元素,返回类型和<String>对应 String dd=list.get(0); //3.删除元素 String deleteVal=list.remove(0); System.out.println("deleteVal====删除的元素是"+deleteVal); //4.获取集合的长度 int listsize=list.size(); System.out.println("集合的长度是=="+listsize); //5.遍历集合 list.fori 快速生成遍历的代码 for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } //===================三.思维练习题============ //1.生成6个1-33得随机数,添加到集合并遍历 /*思路 1.把函数得结果放在<Integer>得集合中 2.产生随机数:Random 产生1-33得随机数 .nextInt(33) 产生得是0-32 整体加1:.nextInt(33)+1 得到1-33 3.产生6个随机数,循环6次 4.遍历,size,获取元素get(i) */ ArrayList<Integer> resrandlist=new ArrayList<Integer>(); Random random=new Random(); for (int i = 0; i < 6; i++) { resrandlist.add(random.nextInt(33)+1); } //遍历: for (int i = 0; i < resrandlist.size(); i++) { System.out.println(resrandlist.get(i)); } //2.自定义四个学生类,添加到集合,并遍历 ArrayList<Stundent> studentlist=new ArrayList<Stundent>(); Stundent st1=new Stundent("学生1",21); Stundent st2=new Stundent("学生2",22); Stundent st3=new Stundent("学生2",23); Stundent st4=new Stundent("学生3",24); studentlist.add(st1); studentlist.add(st2); studentlist.add(st3); studentlist.add(st4); for (int i = 0; i < studentlist.size(); i++) { System.out.println("学生姓名"+studentlist.get(i).getName()+"学生年龄"+studentlist.get(i).getAge()); } //3.定义以指定格式打印集合的方法(ArrayList作为参数),输出格式{测试1@测试2@ 测试3@ 测试4} /*思路: * 1.定义集合 * 方法定义的三要素: * 返回类型:方法的作用只是打印,所以此处没有返回类型 * 方法名:printArrayList * 参数列表:要对集合进行处理,所以得传递一个集合 * */ ArrayList<String> arrprint=new ArrayList<String>(); arrprint.add("测试1"); arrprint.add("测试2"); arrprint.add("测试3"); arrprint.add("测试4"); //[测试1, 测试2, 测试3, 测试4] 需要变成{测试1@测试2@ 测试3@ 测试4},注意:数组直接打印是地址,而集合是经过处理的,直接打印是输出内容,不是地址 System.out.println("处理前的集合数组,arrprint "+arrprint); //调用方法 printArrayList(arrprint); //4.arrayList作为方法的返回值类型,用一个大集合存入20个随机数字,然后筛选出偶数,存入另一个小集合 /*思路 *大集合:Arraylist<Integer> maxlist=new Arraylist<Integer>(); *随机数Random nextInt * 循环20次,放入大集合,for add * 在大集合中筛选偶数,方法定义的三要素:方法的作用数从大集合中找到偶数存入小集合 * 方法返回参数:包含偶数的小集合 * 方法名:getMinList * 参数列表:大集合 * */ ArrayList<Integer> maxList1=new ArrayList<Integer>(); Random random1=new Random(); //循环产生20个随机数 for (int i = 0; i < 20; i++) { maxList1.add(random1.nextInt(100)+1);//1-100 } ArrayList<Integer> reslist=getMinList(maxList1); System.out.println("偶数集合是"+reslist); } public static void printArrayList(ArrayList<String>list){ System.out.println("{"); for (int i = 0; i < list.size(); i++) { if(i==list.size()-1){ System.out.println(list.get(i)+"}"); }else{ System.out.println(list.get(i)+"@"); } } } public static ArrayList<Integer> getMinList(ArrayList<Integer>maxList1){ ArrayList<Integer> minList2=new ArrayList<Integer>(); for (int i = 0; i < maxList1.size(); i++) { if(maxList1.get(i)%2==0){ minList2.add(maxList1.get(i)); } } return minList2; } }
数组和集合的区别:
package day7.demo1; import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Random; public class Demo01ArrayList { public static void main(String[] args) { //==================================四.数据和集合的区别============================ //1.数组声明:数据类型 [] 数组名=new int[长度]; int [] shuzu=new int[5];//动态声明 int [] shuzuint=new int[]{10,20,30,40};//静态声明 Stundent [] shuzu3=new Stundent[2];//动态声明 //1.1集合的声明 ArrayList<Integer> intarr=new ArrayList<Integer>(); ArrayList<Stundent> stuarr=new ArrayList<Stundent>(); //2.数组的增加(赋值); Stundent st=new Stundent("测试增加",10); Stundent sttwo=new Stundent("测试增加",20); shuzu3[0]=st; shuzu3[1]=sttwo; //2.2集合增加 stuarr.add(st); stuarr.add(sttwo); intarr.add(11); intarr.add(22); //3.数组得长度 System.out.println("数组得长度:"+shuzu3.length); //3.1集合得长度 System.out.println("集合得长度:"+stuarr.size()); //4.遍历:数组的遍历 for (int i = 0; i < shuzu3.length; i++) { System.out.println("数组学生年龄:" +shuzu3[i].getAge()+"学生姓名:"+shuzu3[i].getName()); } //5.遍历:集合得遍历 for (int i = 0; i < stuarr.size(); i++) { System.out.println("集合学生年龄:" +stuarr.get(i).getAge()+"学生姓名:"+stuarr.get(i).getName()); } //6.直接打印:数组直接输出得是地址值【表示数组,集合输出得可能是地址值【】表示集合 System.out.println("数组 shuzu3 "+shuzu3);// [Lday7.demo1.Stundent;@1540e19d System.out.println("数组shuzuint "+shuzuint);//[I@677327b6 System.out.println("集合stuarr "+stuarr);//集合stuarr [day7.demo1.Stundent@1540e19d, day7.demo1.Stundent@677327b6] System.out.println("集合intarr "+intarr);//集合intarr [11, 22] } }
浙公网安备 33010602011771号