008-java基础语法之集合

008-java基础语法之集合

1、泛型

集合,就是可以长度可以发生改变的数组实现
泛型: 用来指定集合存储的数据类型

Student类

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;
    }
}

StudentTest

import java.util.ArrayList;

public class StudentTest {
    /*
            目标:掌握集合的概念。理解泛型的作用

                    集合,就是可以长度可以发生改变的数组实现

                    泛型: 用来指定集合存储的数据类型

     */
    public static void main(String[] args) {
        //泛型就是用来指定我们集合存储的数据的类型
        //我想创建一个集合 ,可以用来保存字符串
        ArrayList<String> list = new ArrayList<>();
        System.out.println(list);  //[]

        //我想创建一个集合 ,可以用来保存学生对象
        ArrayList<Student> list2 = new ArrayList<Student>();


    }

}

2、成员方法

2.1 增~add
import java.util.ArrayList;

public class Demo01_添加 {
    /*
        目标:掌握如何使用集合保存元素

        boolean add(E e) 将指定的元素追加到此列表的末尾。    【重点】
        void add(int index, E element) 在此列表中的指定位置插入指定的元素。

     */
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        boolean a = list.add("a");      //0
        System.out.println("a:" + a);
        list.add("b"); //返回值都是为true,所以 意义不大,不接收了    1

        //  void add(int index, E element) 在此列表中的指定位置插入指定的元素。
        // 我想把 c 添加到第一个位置。
        list.add(2, "c");  // 0 1  2  因为使用的时候需要考虑索引的越界问题

        System.out.println("集合的元素:" + list);

    }
}
2.2 删~remove
import java.util.ArrayList;

public class Demo04_删除 {
    /*
        目标: 掌握集合的删除元素的方法
            E remove(int index) 删除该列表中指定位置的元素。
            boolean remove(Object o)
            从列表中删除指定元素的第一个出现(如果存在)。
     */

    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("a");// 0
        list.add("b");// 1
        list.add("c");// 2
        list.add("d");// 3
        list.add("a");// 4

        // E remove(int index) 删除该列表中指定位置的元素。
      //  String s = list.remove(4);  //返回值没有太大意义, 所以 一般都不接。
      //  System.out.println("被删除的元素:" + s);
         // boolean remove(Object o) 从列表中删除指定元素的第一个出现(如果存在)。
        boolean flag = list.remove("aa");
        System.out.println("flag:" + flag);

        System.out.println("集合的元素:" + list);
    }
}

2.3 改~set
import java.util.ArrayList;

public class Demo03_修改 {
    /*
        目标:掌握修改集合的元素方法
            E set(int index, E element)
            用指定的元素替换此列表中指定位置的元素。

     */
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("a");// 0
        list.add("b");// 1
        list.add("c");// 2
        list.add("d");// 3

        //我想把 d 修改成 dd
        String s = list.set(3, "dd");   //返回的是修改前的元素,一般我们也不接收。
        System.out.println("修改前的元素:" + s);

        //如果我想把b 改成 bb?


        System.out.println(list);

    }
}
2.4 查~get
import java.util.ArrayList;

public class Demo02_获取 {
    /*
        目标:掌握如何从集合中获取元素
            E get(int index) 返回此列表中指定位置的元素。

     */
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("a");// 0
        list.add("b");// 1
        list.add("c");// 2
        list.add("d");// 3

        //获取索引为0的 元素 , 第一个元素
        String s1 = list.get(0);
        System.out.println("集合的第一个元素是:" + s1);

        //获取索引为1的 元素 , 第二个元素
        String s2 = list.get(1);
        System.out.println("集合的第二个元素是:" + s2);

        System.out.println("当前集合的元素是:" + list);
    }
}

3、方法

Teacher类

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

    public Teacher() {
    }

    public Teacher(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 Demo02 {
    public static void main(String[] args) {
        ArrayList<Teacher> list = new ArrayList<>();
        Teacher t1 = new Teacher("张三", 23);
        Teacher t2 = new Teacher("李四", 33);
        Teacher t3 = new Teacher("王五", 28);
        Teacher t4 = new Teacher("赵六", 35);
        Teacher t5 = new Teacher("田七", 29);
        list.add(t1);
        list.add(t2);
        list.add(t3);
        list.add(t4);
        list.add(t5);

        //调用完方法之后,可以得到筛选之后的数据
        ArrayList<Teacher> newList = getList(list);
        for (int i = 0; i < newList.size(); i++) {
            Teacher t = newList.get(i);
            System.out.println(t.getName() + "..." + t.getAge());
        }
    }
    /*需求:定义一个方法,方法接收一个集合对象(泛型为Teacher),方法内部将年龄低于30的老师对象找出
            并存入新集合对象,方法返回新集合

            目标:将年龄低于30的老师对象找出并存入新集合对象,方法返回新集合
            数据:需要有一个集合对象【包含很多的数据】
            思路:
                    1.定义方法,接收一个带有数据的集合
                    2.我们需要创建一个新的集合对象,用来保存符合条件的数据
                    3.遍历集合,获取每一个老师对象
                        3.1 获取老师的年龄,判断是否低于30岁
                        3.2 如果低于30岁,则把当前的老师对象保存到新集合中
                    4. 循环结束之后,返回新集合

     */
    //1.定义方法,接收一个带有数据的集合
    public static ArrayList<Teacher> getList(ArrayList<Teacher> aaa) {
        //2.我们需要创建一个新的集合对象,用来保存符合条件的数据
        ArrayList<Teacher> newList = new ArrayList<>();
        //3.遍历集合,获取每一个老师对象
        for (int i = 0; i < aaa.size(); i++) {
            Teacher t = aaa.get(i);
            //3.1 获取老师的年龄,判断是否低于30岁
            if (t.getAge() < 30) {
                //3.2 如果低于30岁,则把当前的老师对象保存到新集合中
                newList.add(t);
            }
        }
        //4. 循环结束之后,返回新集合
        return newList;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值