Java ee 从入门到放弃 day09

别等时光非礼了梦想. 提交于 2019-11-30 05:17:27

ArrayList集合

ArrayList构造、添加和常用方法

import java.util.ArrayList;

/*
ArrayList:提供一种存储空间可变的存储模型,存储的数据容量可以发生改变
ArrayList构造方法:
    public ArrayList():创建一个空的集合对象

ArrayList添加方法:
    public boolean add<E e>:将指定的元素追加到此集合的末尾
    public void add(int index,E element):在此集合中的指定位置插入指定的元素

ArrayList常用方法:
    public boolean remove(Object o):删除指定的元素,返回删除是否成功
    public boolean remove(int index):删除指定索引处的元素,返回被删除的元素
    public E set(int index.E element):修改指定索引出的元素,返回被修改的元素
    public E get(int index):返回指定索引处的元素
    public int size():返回集合中的元素的个数

 */
public class ArrayListDemo {
    public static void main(String[] args) {
        ArrayList<String> array = new ArrayList<>();
        //public boolean add<E e>:将指定的元素追加到此集合的末尾
        array.add("Hello");
        array.add("World");
        //    public void add(int index,E element):在此集合中的指定位置插入指定的元素
        array.add(1, "Your");
        System.out.println("array:" + array);

//        public boolean remove(Object o):删除指定的元素,返回删除是否成功
        //System.out.println(array.remove("World"));删除array中的"World"

//        public boolean remove(int index):删除指定索引处的元素,返回被删除的元素
        //System.out.println(array.remove(1));删除array中的索引为1的元素

//        public E set(int index.E element):修改指定索引出的元素,返回被修改的元素
        //System.out.println(array.set(1,"world"));修改array中的索引为1的元素,并返回"world"

//        public E get(int index):返回指定索引处的元素
        //System.out.println(array.get(1));返回array中的索引为1的元素

//        public int size():返回集合中的元素的个数
        System.out.println(array.size());//返回集合中的元素的个数
    }
}

ArrarList存储字符串并遍历


import java.util.ArrayList;

public class ArrayListFori {
    public static void main(String[] args) {
        ArrayList<String> array = new ArrayList<String>();
        array.add("邓超");
        array.add("谢娜");
        array.add("迪丽热巴");
        for (int i = 0; i < array.size(); i++) {
            System.out.println(array.get(i));
        }
    }
}

ArrarList存储学生对象并遍历

/*
学生类
 */
public class Student {
    //成员变量
    private String name;
    private int age;

    //无参构造
    public Student() {
    }

    //带参构造
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    //getter/setter方法
    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;
    }
}

/*
创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
 */
import java.util.ArrayList;

public class ArrayListTest {
    public static void main(String[] args) {
        //创建集合对象
        ArrayList<Student> array = new ArrayList<>();

        //创建学生对象
        Student s1 = new Student("邓超",45);
        Student s2 = new Student("一眉道长",70);
        Student s3 = new Student("孙俪",35);

        //添加学生对像到集合中
        array.add(s1);
        array.add(s2);
        array.add(s3);

        //遍历集合,采用通用遍历格式实现
        for (int i = 0; i < array.size(); i++) {
            Student s = array.get(i);
            System.out.println(s.getName() +","+ s.getAge());
        }

    }
}

ArrarList存储学生对象并遍历升级版

/*
学生类
 */
public class Student {
    //成员变量
    private String name;
    private int age;
    //无参构造
    public Student() {
    }

    //有参构造
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    //getter/setter方法
    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;
import java.util.Scanner;

/*
创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台
遍历该集合 学生的姓名和年龄来自于键盘录入
 */
public class ArrayListTest {
    public static void main(String[] args) {
        //创建集合对象
        ArrayList<Student> array = new ArrayList<>();
        addArrayLise(array);
        addArrayLise(array);
        addArrayLise(array);
        for (int i = 0; i < array.size(); i++) {
            Student s = array.get(i);
            System.out.println(s.getName() + "," + s.getAge());
        }
    }

    public static void addArrayLise(ArrayList<Student> array) {
        //创建学生对象
        Student s = new Student();
        //创建Scanner对象
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入学生姓名:");
        String name = sc.nextLine();
        System.out.println("请输入学生年龄:");
        int age = sc.nextInt();
        s.setName(name);
        s.setAge(age);
        array.add(s);
    }
}

学生管理系统

/*
学生类
 */
public class Student {
    //成员变量
    private String number;
    private String name;
    private String age;
    private String phone;

    //无参构造
    public Student() {
    }

    //带参构造
    public Student(String number, String name, String age, String phone) {
        this.number = number;
        this.name = name;
        this.age = age;
        this.phone = phone;
    }

    //getter/setter方法
    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }
}

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

/*
学生管理类
 */
public class StudentManager {
    public static void main(String[] args) {
        ArrayList<Student> array = new ArrayList<>();
        Scanner sc = new Scanner(System.in);
        for (; ; ) {
            System.out.println("-----------欢迎来到学生管理系统-----------");
            System.out.println("1.添加学生信息");
            System.out.println("2.删除学生信息");
            System.out.println("3.修改学生信息");
            System.out.println("4.查看所有学生");
            System.out.println("5.退出");
            System.out.print("请输入你的选项:");
            int num = sc.nextInt();
            if (num == 1) {
                addStudent(array);
            } else if (num == 2) {
                delStudent(array);
            } else if (num == 3) {
                updateStudent(array);
            } else if (num == 4) {
                findStudent(array);
            } else if (num == 5) {
                break;
            } else {
                System.out.println("输入有误");
            }
        }
        System.out.println("欢迎使用");
    }

    //添加学生方法
    public static void addStudent(ArrayList<Student> array) {
        //创建学生对象
        Student s = new Student();
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入学生学号:");
        String number = sc.nextLine();
        int index = -1;
        for (int i = 0; i < array.size(); i++) {
            Student s1 = array.get(i);
            if (s1.getNumber().equals(number)) {
                index = i;
                break;
            }
        }
        if (index == -1) {
            System.out.println("请输入学生姓名:");
            String name = sc.nextLine();
            System.out.println("请输入学生年龄:");
            String age = sc.nextLine();
            System.out.println("请输入学生手机号:");
            String phone = sc.nextLine();
            s.setNumber(number);
            s.setName(name);
            s.setAge(age);
            s.setPhone(phone);
            array.add(s);
            System.out.println("添加成功!");
        } else {
            System.out.println("该学号已存在");
        }

    }

    //删除学生方法
    public static void delStudent(ArrayList<Student> array) {
        Scanner sc = new Scanner(System.in);
        n:
        for (; ; ) {
            System.out.println("请输入要删除学生的学号:");
            String number = sc.nextLine();
            for (int i = 0; i < array.size(); i++) {
                Student s = array.get(i);
                if (s.getNumber().equals(number)) {
                    array.remove(i);
                    System.out.println("删除成功!");
                    return;
                }
            }
            System.out.println("查无此人");
            System.out.println("退出删除输入“n”,继续请输入其他:");
            String s1 = sc.nextLine();
            if (s1.equals("n")) {
                return;
            }
        }
    }

    //查看所有学生方法
    public static void findStudent(ArrayList<Student> array) {
        Scanner sc = new Scanner(System.in);
        if (array.size() == 0) {
            System.out.println("暂时还没有学生,输入“y”去添加学生,退出输入其他");
            String s = sc.nextLine();
            if (s.equals("y")){
                addStudent(array);
            }else {
                return;
            }
        } else {
            System.out.println("学号" + "\t\t\t" + "姓名" + "\t\t" + "年龄" + "\t\t" + "手机号");
            for (int i = 0; i < array.size(); i++) {
                Student s = array.get(i);
                System.out.println(s.getNumber() + "\t\t\t\t" + s.getName() + "\t\t" + s.getAge() + "岁\t\t" + s.getPhone());
            }
        }
    }

    //修改学生信息
    public static void updateStudent(ArrayList<Student> array) {
        Scanner sc = new Scanner(System.in);
        for (; ; ) {
            System.out.println("请输入要修改学生的学号:");
            String number = sc.nextLine();
            for (int i = 0; i < array.size(); i++) {
                Student s1 = array.get(i);
                if (s1.getNumber().equals(number)) {
                    System.out.println("请输入学生的新姓名:");
                    String name = sc.nextLine();
                    System.out.println("请输入学生的新年龄:");
                    String age = sc.nextLine();
                    System.out.println("请输入学生的新手机号:");
                    String phone = sc.nextLine();
                    Student s = new Student();
                    s.setNumber(number);
                    s.setName(name);
                    s.setAge(age);
                    s.setPhone(phone);
                    array.set(i, s);
                    System.out.println("修改成功!");
                    return;
                }
            }
            System.out.println("查无此人");
            System.out.println("退出修改输入“n”,继续请输入其他:");
            String s1 = sc.nextLine();
            if (s1.equals("n")) {
                return;
            }
        }
    }
}

习题

第一题:分析以下需求并实现

1.创建一个ArrayList集合,用于存储一些字符串
2.通过键盘录入5个字符串,保存到集合中
3.遍历集合,打印每一个字符串

第二题:分析以下需求并实现

1.创建一个ArrayList集合,用于存储一些字符串:"abc","def","def","ghi","def","hij","jkol"
2.遍历集合,统计集合中"def"字符串一共出现了多少个
3.将集合中的所有"def"字符串删除。打印删除后的集合元素

第三题:分析以下需求并实现

1.定义"学员"类Student,类中包含以下成员:
	成员属性: 
		snum (学号):int类型, score(成绩):double类型,属性使用private修饰
	为所有属性提供set/get方法。
2.定义类:Test06,类中定义main()方法,依次完成以下要求:
	2.1 实例化3个Student对象,3个对象的属性分别为:1001, 55.0、1002, 66.6、1003, 77.0
	2.2	创建一个ArrayList集合,分别将上面的3个Student对象添加到集合中
	2.3	遍历集合,删除集合中元素的学号为1002的元素,并打印集合中剩余元素的学号和成绩

昨日习题答案

第一题:分析以下需求,并用代码实现

1.定义String getStr()方法
功能描述:
	获取长度为5的随机字符串,字符串由随机的5个大小写字母组成
2.在main方法中调用上述方法,并打印结

/*大写:65-90
小写:97-122*/
import java.util.Random;

public class randomStr {
    public static void main(String[] args) {
        //调用方法
        String str = getStr();
        //输出
        System.out.println(str);
    }

    public static String getStr() {
        //构造StringBuilder对象
        StringBuilder sb = new StringBuilder();
        Random r = new Random();
        while (true) {
            
            if (sb.length() == 5) {
                //控制字符串长度为5
                break;
            } else {
				//随机生成65-122的随机数
				int a = r.nextInt(58) + 65;
                //判断生成的随机数在不在大写和小写字母范围内
                if ((a >= 65 && a <= 90) || (a >= 97 && a <= 122)) {
                    //将数字转换成相应的字母
                    char cc = (char) a;
                    //然后将字符添加到sb中
                    sb.append(cc);
                } else {
                    continue;
                }
            }
        }
        String s = sb.toString();
        return s;
    }
}

第二题: 分析以下需求,并用代码实现

1.键盘录入一个字符串
2.将该字符串变成字符数组(不能使用toCharArray()方法)
3.将字符数组中的所有大写字母变成小写字母(不能使用toLowerCase()方法)
4.如果第一位和最后一位的内容不相同,则交换
5.将字符数组中索引为偶数的元素变成'~'
6.打印数组元素的内容
public class StringToArray {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String line = sc.nextLine();
        char[] ch = new char[line.length()];
        //将该字符串变成字符数组(不能使用toCharArray()方法)
        StringToArray(line, ch);
        //打印数组
        printArray(ch);
        //将字符数组中的所有大写字母变成小写字母(不能使用toLowerCase()方法)
        HighToLower(ch);
        //打印数组
        printArray(ch);
        //如果第一位和最后一位的内容不相同,则交换
        changeArray(ch);
        //打印数组
        printArray(ch);
        //将字符数组中索引为偶数的元素变成'~'
        changeDouble(ch);
        //打印数组
        printArray(ch);


    }

    public static void StringToArray(String line, char[] ch) {

        for (int i = 0; i < line.length(); i++) {
            ch[i] = line.charAt(i);
        }
    }

    public static void HighToLower(char[] ch) {
        for (int i = 0; i < ch.length; i++) {
            //首先判断是不是大写字母
            //将字符转成对应的数字
            int a = (int) ch[i];
            if (a >= 65 && a <= 90) {
                //转换成小写字母对应的数字
                a = a + 32;
                //把数字转换成小写字母并存入数组
                ch[i] = (char) a;
            } else {
                //不是大写字母
                continue;
            }
        }
    }

    public static void changeArray(char[] ch) {
        //如果最后一个元素和第一个不相同,就交换
        if (ch[0] != ch[ch.length - 1]) {
            char temp = ch[0];
            ch[0] = ch[ch.length - 1];
            ch[ch.length - 1] = temp;
        }
    }

    public static void changeDouble(char[] ch) {
        //遍历数组,判读偶数位,将偶数位置元素更换为~
        for (int i = 0; i < ch.length; i++) {
            if (i % 2 == 0) {
                ch[i] = '~';
            }
        }
    }

    public static void printArray(char[] ch) {
        StringBuilder sb = new StringBuilder();
        sb.append("[");
        for (int i = 0; i < ch.length; i++) {
            if (i == ch.length - 1) {
                sb.append(ch[i]);
            } else {
                sb.append(ch[i] + ", ");
            }
        }
        sb.append("]");

        System.out.println(sb.toString());
    }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!