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]

    }

}

 

posted @ 2021-05-26 14:49  程序杨%  阅读(592)  评论(0)    收藏  举报