Java--数组和ArrayList集合

1.数组

数组有一个缺点:一旦创建,程序运行期间长度不可以发生改变。

关于数组的练习。

题目:定义一个数组,用来存储3个Person对象。

public class Person {

    private String name;
    private int age;

    public Person() {
    }
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    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;
    }
}
public class Demo01Array {
    public static void main(String[] args) {
        Person[] array =new Person[3];
//        System.out.println(array[0]);

        Person one = new Person("李琪",10);
        Person two = new Person("小赵",15);
        Person three = new Person("晓得",20);

        //将地址值赋值
        array[0] = one;
        array[1] = two;
        array[2] = three;

        //输出的是地址值
        System.out.println(array[0]);
        System.out.println(array[1]);
        System.out.println(array[2]);
        System.out.println(array[1].getName());
    }
}

虽然数组的长度不可以改变,但是ArrayList集合的长度是可以改变的。

2.ArrayList<E>--泛型

对于ArrayList来说,有一个<E>代表泛型。

泛型,也就是装在集合当中的所有元素,全都是统一的什么类型。

注意:泛型只能是引用类型,不能说基本类型。

import java.util.ArrayList;
public class Demo02ArrayList {

    public static void main(String[] args) {
        ArrayList<String> list =new ArrayList<>();
        System.out.println(list);//[]

        //向集合当中添加数据,需要用到add方法。
        list.add("王宝强");
        System.out.println(list);//[王宝强]

        list.add("洋气");
        list.add("前锋");
        list.add("打赏");
        System.out.println(list);//[王宝强, 洋气, 前锋, 打赏]
    }
}

ArrayList当中常用方法有:

public boolean add(E e);向集合当中添加元素,参数的类型和泛型一致。

public E get(int index);从集合当中获取元素,参数是索引编号,返回值就是对应位置的元素。

public E remove(int index);从集合当中删除元素,参数是索引编号,返回值就是被删除掉的元素。

public int size();获取集合的尺寸长度,返回值是集合中包含的元素个数。

import java.util.ArrayList;
public class Demo03ArrayListMethod {
    public static void main(String[] args) {

        ArrayList<String> list = new ArrayList<>();
        System.out.println(list);

        //向集合中添加元素 :add
        boolean success = list.add("全球");
        System.out.println(success);
        System.out.println("添加成功了吗:"+success);

        list.add("断点");
        list.add("海鸥");
        list.add("海豚");
        System.out.println(list);

        //从集合中获取元素:get。索引值从0开始。
        String name = list.get(2);
        System.out.println("第二好索引位置:"+name);

        //从集合中删除元素:remove。索引值从0开始。
        String whoRemoved = list.remove(3);
        System.out.println("被删除的人是谁:"+whoRemoved);
        System.out.println(list);

        //获取集合的长度尺寸,也就是其中元素的个数
        int size  = list.size();
        System.out.println("集合的长度是:"+size);
    }
}
import java.util.ArrayList;
public class Demo04ArrayListEach {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("迪丽热巴");
        list.add("格林尼治");
        list.add("马尔罗");

        //遍历集合
        for (int i=0;i<list.size();i++){
            System.out.println(list.get(i));
        }
    }
}

如果希望向集合ArrayList当中存储基本类型数据,必须使用基本类型对应的“包装类”。

基本类型   包装类(引用类型,包装都位于java.lang包下)
byte       Byte
short      Short
int        Integer
long       Long
float      Float
double     Double
char       Character
boolean    Boolean
import java.util.ArrayList;
public class Demo05ArrayListBasic {
    public static void main(String[] args) {
        ArrayList<String> listA = new ArrayList<>();

        //错误写法。泛型只能说引用类型,不能是基本类型。
//        ArrayList<int> listB = new ArrayList<int>();

        ArrayList<Integer> listC = new ArrayList<>();
        listC.add(10);
        listC.add(12);
        System.out.println(listC);

        int num = listC.get(1);
        System.out.println("第一号元素是:"+num);
    }
}

ArrayList练习一。

生成6个1-33之间的随机数,添加到集合,并遍历集合。

import java.util.ArrayList;
import java.util.Random;
public class Demo01ArrayListRandom {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();
        Random r = new Random();
        for (int i = 0; i < 6; i++) {
            int num = r.nextInt(33)+1;
            list.add(num);
        }
        //遍历集合
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}

ArrayList练习二。

自定义4个学生对象,添加到集合,并遍历。

public class Student {
    private String name;
    private int age;

    public Student() {
    }
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    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;
    }
}
import java.util.ArrayList;
public class Demo02ArrayListStudent {
    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<>();

        Student one = new Student("李琪",10);
        Student two = new Student("李鹏",50);
        Student three = new Student("李金生",40);
        Student four = new Student("李建成",80);

        list.add(one);
        list.add(two);
        list.add(three);
        list.add(four);

        //遍历集合
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            System.out.println("姓名:"+stu.getName()+",年龄"+stu.getAge());
        }
    }
}

ArrayList练习三。

定义以指定格式打印集合的方法(ArrayList类型作为参数),使用{},使用@分隔每个元素。

import java.util.ArrayList;
public class Demo03ArrayListPrint {
    public static void main(String[] args) {

        ArrayList<String> list = new ArrayList<>();
        list.add("张卫健");
        list.add("张国荣");
        list.add("张翠山");
        System.out.println(list);

        printArrayList(list);
    }

    public static void printArrayList(ArrayList<String> list){
        // {10@20@30}
        System.out.print("{");
        for (int i = 0; i < list.size(); i++) {
            String name = list.get(i);
            if (i==list.size()-1){
                System.out.println(name+"}");
            }else{
                System.out.print(name+"@");
            }
        }
    }
}

ArrayList练习四。

用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到小集合当中。

要求使用自定义的方法来实现筛选。

import java.util.ArrayList;
import java.util.Random;
public class Demo04ArrayListReturn {
    public static void main(String[] args) {
        ArrayList<Integer> bigList = new ArrayList<>();
        Random r = new Random();

        for (int i = 0; i < 20; i++) {
            int num = r.nextInt(100)+1;
            bigList.add(num);
        }

        ArrayList<Integer> smallList = getSmallList(bigList);

        System.out.println(smallList);
        System.out.println("偶数的个数:"+smallList.size());
        for (int i = 0; i < smallList.size(); i++) {
            System.out.println(smallList.get(i));

        }
    }
    //定义方法,接收大集合参数,返回小集合结果。
    public static ArrayList<Integer> getSmallList(ArrayList<Integer> bigList){

        ArrayList<Integer> smallList = new ArrayList<>();
        for (int i = 0; i < bigList.size(); i++) {
            int num = bigList.get(i);
            if (num%2==0){
                smallList.add(num);
            }
        }
        return smallList;
    }
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值