day09集合

1.集合介绍

集合是一种容器

我们基础班学习了两种容器,一个是集合另一个是数组
	
区别:
	数组创建的时候长度是固定的
	集合创建的时候长度是不固定的,可以随时增或删元素

2.创建集合格式

ArrayList<String> list = new ArrayList<>();

<>里面只能写引用类型,不能写基本类型

就业班会讲包装类,每个基本类型都有对应的引用写法
int--->Integer

3.常用方法

add(元素)			 :添加元素
add(索引,元素)		:在指定索引处添加元素
remove(元素)		 :删除元素,如果有多个相同的只会删除第一个
remove(索引)		 :删除指定索引处的元素
set(索引,元素)		:修改指定索引处的元素
get(索引) 		 :获取指定索引处的元素
size()			   :获取集合的长度
package com.itheima01;

import java.util.ArrayList;

public class Demo01 {
    public static void main(String[] args) {
        //使用集合
        //创建了一个存储字符串的集合
        ArrayList<String> list = new ArrayList<>();

        //add() :添加方法
        list.add("新垣结衣");
        list.add("石原里灭");
        list.add("花泽香菜");

        //add()  :给指定的索引处添加元素
        list.add(1, "马冬梅");

        //remove() :删除元素(如果有多个相同元素,只会删除第一个)
        list.remove("石原里灭");
        //remove() :删除指定索引处的元素
        list.remove(0);

        //set()   :修改指定索引处的元素
        list.set(1, "桥本环奈");

        //get()  :获取指定索引处的元素
        String s = list.get(0);
        System.out.println(s);   //马冬梅

        //size()  :获取集合的长度
        int size = list.size();
        System.out.println(size);

        //输出
        System.out.println(list);
    }
}

4.集合的遍历

package com.itheima01;

import java.util.ArrayList;
/*
        循环10次:   10.fori
        遍历数组:   arr.fori
        遍历集合:   list.fori
        遍历字符串: s.length().fori
 */
public class Demo02 {
    public static void main(String[] args) {
        //创建了一个存储字符串的集合
        ArrayList<String> list = new ArrayList<>();

        //add() :添加方法
        list.add("新垣结衣");
        list.add("石原里灭");
        list.add("马冬梅");
        list.add("花泽香菜");


        //遍历
        //快捷键: list.fori
        for (int i = 0; i < list.size(); i++) {
            //获取元素
            String s = list.get(i);
            //判断字符串的长度是否是4
            if(s.length()==4) {
                //输出元素
                System.out.println(s);
            }
        }

        //需求:打印名字是4个字的人
    }
}

5.集合存储自定义类型

package com.itheima01;

import java.util.ArrayList;

public class Demo03 {
    public static void main(String[] args) {
        //创建集合
        ArrayList<Person> list = new ArrayList<>();

        Person p1 = new Person("马冬梅",'女',37);
        Person p2 = new Person("十元",'女',40);
        Person p3 = new Person("霉霉",'女',39);

        //添加元素
        list.add(p1);
        list.add(p2);
        list.add(p3);

        //输出
        System.out.println(list);

        //集合的遍历
        for (int i = 0; i < list.size(); i++) {
            //获取元素
            Person p = list.get(i);
            //判断年龄
            if(p.getAge()>38) {
                System.out.println(p);
            }

        }

        //需求:打印年龄大于38的人
    }
}

集合的练习:

1.如果一个人叫"马冬梅",就把这个人的年龄改成40
package com.itheima01;

import java.util.ArrayList;

public class Demo04 {
    public static void main(String[] args) {

        ArrayList<Person> list = new ArrayList<>();

        Person p1 = new Person("马冬梅",'女',37);
        Person p3 = new Person("霉霉",'女',39);
        Person p2 = new Person("十元",'男',23);

        //添加元素
        list.add(p1);
        list.add(p2);
        list.add(p3);


        //如果一个人叫"马冬梅",就把这个人的年龄改成40
        //遍历集合
        for (int i = 0; i < list.size(); i++) {
            //获取集合的每个元素
            Person p = list.get(i);
            //获取名字
            String name = p.getName();
            //获取性别
            char sex = p.getSex();
            //判断名字
            if(name.equals("马冬梅")) {
                //创建新的Person对象姓名是原来的姓名,性别是原来的性别,年龄是40
                Person p4 = new Person(name,sex,40);
                //把新元素替换旧的元素
                list.set(i,p4);
            }
        }

        //输出结果
        System.out.println(list);

    }
}
2.输出有"美"字的字符串
package com.itheima01;

import java.util.ArrayList;

public class Demo05 {
    public static void main(String[] args) {

        //创建集合,集合存储String
        ArrayList<String> list = new ArrayList<>();

        //给集合添加4个字符串元素
        //"石原里美"   "马东美"   "十元"   "郭美美"
        list.add("石原里美");
        list.add("马东美");
        list.add("十元");
        list.add("郭美美");

        //输出有"美"字的字符串
        //遍历集合
        for (int i = 0; i < list.size(); i++) {
            //获取每个元素
            String s = list.get(i);
            //遍历字符串
            for (int j = 0; j < s.length(); j++) {
                //获取字符串的每个字符
                char ch = s.charAt(j);
                //判断字符
                if(ch=='美'){
                    //输出字符串
                    System.out.println(s);
                    //结束循环,因为只要有一个美字,就不用继续判断这个字符串了
                    break;
                }
            }
        }
    }
}

6.删除集合所有元素

package com.itheima01;

import java.util.ArrayList;

public class Demo06 {
    public static void main(String[] args) {

        ArrayList<String> list = new ArrayList<>();

        list.add("新垣结衣");
        list.add("石原里灭");
        list.add("马冬梅");
        list.add("花泽香菜");

        //删除集合的所有元素

        //i--
        for (int i = 0; i < list.size(); i++) {
            //删除元素
            list.remove(i);
            i--;
        }

        //倒着删
        for(int i=list.size()-1; i>=0; i--){
            list.remove(i);
        }
        
        //输出
        System.out.println(list);
    }
}

7.学生管理系统

package com.itheima02;
//学生类
public class Student {
    private String id;     //学号
    private String name;  //姓名
    private int age;      //年龄
    private String sex;  //性别


    //构造方法

    public Student() {
    }

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


    //set   get

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    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 String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}
package com.itheima02;

import java.util.ArrayList;
import java.util.Scanner;

public class Demo {
    public static void main(String[] args) {
        //定义集合
        ArrayList<Student> list = new ArrayList<>();

        //循环
        while(true) {

            //显示信息
            System.out.println("1.添加学生  2.修改学生  3.删除学生  4.查看所有学生  5.退出系统");
            //用户键盘输入数字
            Scanner sc = new Scanner(System.in);
            int a = sc.nextInt();
            //判断用户的选择
            switch(a){
                case 1:
                    //添加学生
                    tianjia(list);
                    break;
                case 2:
                    //修改学生
                    xiugai(list);
                    break;
                case 3:
                    //删除学生

                    break;
                case 4:
                    //查询学生
                    chakan(list);
                    break;
                case 5:
                    //退出系统
                    return;
                default:
                    System.out.println("你输入的有误...");
            }
        }
    }


    //定义添加方法
    public static void tianjia(ArrayList<Student> list){
        Scanner sc = new Scanner(System.in);
        //键盘输入学号
        System.out.println("请输入学号:");
        String id = sc.next();
        //输入姓名
        System.out.println("请输入姓名:");
        String name = sc.next();
        //输入年龄
        System.out.println("请输入年龄:");
        int age = sc.nextInt();
        //输入性别
        System.out.println("请输入性别:");
        String sex = sc.next();
        //创建学生对象
        Student s = new Student(id,name,age,sex);
        //把对象放在集合中
        list.add(s);
        //给提示
        System.out.println("添加成功");
    }

    //查看功能
    public static void chakan(ArrayList<Student> list){
        System.out.println("学号\t\t姓名\t\t年龄\t性别");
        //遍历集合
        for (int i = 0; i < list.size(); i++) {
            //获取元素
            Student s = list.get(i);
            //获取信息
            System.out.println(s.getId()+"\t"+s.getName()+"\t\t"+s.getAge()+"\t\t"+s.getSex());
        }
    }


    //修改功能
    public static void xiugai(ArrayList<Student> list){
        //1.键盘输入学号
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入学生的学号:");
        String id = sc.next();
        //2.判断学号是否存在
        //2.1遍历集合
        for (int i = 0; i < list.size(); i++) {
            //2.2获取集合中的学生对象
            Student s = list.get(i);
            //2.3获取学生对象的学号
            String id1 = s.getId();
            //2.4判断学号是否相同
            if(id.equals(id1)){
                //3.如果存在
                //3.1输入新的姓名年龄性别
                //输入姓名
                System.out.println("请输入姓名:");
                String name = sc.next();
                //输入年龄
                System.out.println("请输入年龄:");
                int age = sc.nextInt();
                //输入性别
                System.out.println("请输入性别:");
                String sex = sc.next();
                //3.2创建新的学生对象
                Student news = new Student(id,name,age,sex);
                //3.3用新的对象替换旧的对象
                list.set(i,news);
                //3.4提示修改成功
                System.out.println("修改成功");
                //结束方法
                return;
            }
        }

        //4.如果不存在
        //提示修改失败
        System.out.println("修改失败,学号不存在");
    }


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值