第4节ArrayList集合

集合基础

  概述

  编程的时候如果要存储多个数据,使用长度固定的数组存储格式,不一定满足我们的需求,

  更适应不了变化的需求,那么,此时该如何选择呢?

  集合

  集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以发生改变

  集合类有很多,目前我们先学习一个:ArrayList

  ArrayList<E>:

  • 可调整大小的数组实现
  • <E>:是一种特殊的数据类型,泛型。

  怎么用呢?

  在出现E的地方我们使用引用数据类型替换即可

  举例:ArrayList<String>,ArrayList<Student>

 

ArrayList构造方法和添加方法

  public ArrayList()    创建一个空的集合对象

  public boolean add(E e)  将指定的元素追加到此集合的末尾

  public void add(int index,E element)  在此集合中的指定位置插入指定的元素

package com.itheima_01;

import java.util.ArrayList;

public class ArrayListDemo01 {
    public static void main(String[] args) {
        ArrayList<String> array=new ArrayList<>();
        array.add("hello");
        array.add("world");
        array.add("java");
        System.out.println("array:"+array);
    }
}
        //在指定位置添加元素
        array.add(1,"sb");

 

ArrayList集合常用方法

  public boolean remove(Object o)    删除指定的元素,返回删除是否成功

  public E remove(int index)         删除指定索引处的元素,返回被删除的元素

  public E set(int index,E element)     修改指定索引处的元素,返回被修改的元素

  public E get(int index)         返回指定索引处的元素

  public int size()            返回集合中的元素的个数

package com.itheima_01;

import java.util.ArrayList;

public class ArrayListDemo01 {
    public static void main(String[] args) {
        ArrayList<String> array=new ArrayList<>();
        array.add("hello");
        array.add("world");
        array.add("java");

        //删除指定的元素,返回删除是否成功
        //System.out.println(array.remove("java"));

        //删除指定索引处的元素,返回被删除的元素
        //System.out.println(array.remove(1));

        // 修改指定索引处的元素,返回被修改的元素
        //System.out.println(array.set(0,"javaSE"));

        //返回指定索引处的元素
        //System.out.println(array.get(0));

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

        System.out.println(array);
    }
}

 

案例:存储字符串并遍历

  需求:创建一个存储字符串的集合,存储3个字符串元素,使用程序实现在控制台遍历该集合

package com.itheima_01;

import java.util.ArrayList;

public class ArrayListDemo02 {
    public static void main(String[] args) {
        //  需求:创建一个存储字符串的集合,存储3个字符串元素,使用程序实现在控制台遍历该集合
        ArrayList<String> array=new ArrayList<>();
        array.add("cao");
        array.add("qiao");
        array.add("meng");

        for (int i=0;i<array.size();i++){
            System.out.println(array.get(i));
        }
    }
}

 

案例:存储学生对象并遍历

  需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合

package com.itheima_01;
/*
* 学生类
* */
public class Student {
    private String name;
    private int age;

    public Student(){}

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

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

    public void setAge(int age){
        this.age=age;
    }
    public int getAge(){
        return age;
    }
}
package com.itheima_01;

import java.util.ArrayList;

public class ArrayListDemo03 {
    public static void main(String[] args) {
        ArrayList<Student> array=new ArrayList<>();

        Student s1=new Student("方宾",18);
        Student s2=new Student("曹巧梦",3);
        Student s3=new Student("狗子",5);

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

 

案例:存储学生对象并遍历

  需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合

     学生的姓名和年龄来自于键盘录入

package com.itheima_02;

/*
* 学生类
* */
public class Student {
    String name;
    String age;

    public Student(){}

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

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

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

 

package com.itheima_02;

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

public class ArrayListDemo {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        ArrayList<Student> array=new ArrayList<>();
        String name;
        String age;
        Student s1=null;
        Student s2=null;
        Student s3=null;

        int flag=1;
        while(true){
            System.out.println("请输入姓名:");
            name=sc.nextLine();
            System.out.println("请输入年龄:");
            age=sc.nextLine();
            switch (flag){
                case 1:
                    s1=new Student(name,age);
                    break;
                case 2:
                    s2=new Student(name,age);
                    break;
                case 3:
                    s3=new Student(name,age);
                    break;
                default:
                    break;
            }
            flag++;
            if(flag==4){
                break;
            }
        }
        array.add(s1);
        array.add(s2);
        array.add(s3);

        for (int j=0;j< array.size();j++){
            Student a = array.get(j);
            System.out.println(a.getName()+","+a.getAge());
        }
    }
}

  方法二

package com.itheima_02;

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

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

        ArrayList<Student> array=new ArrayList<>();
        for (int i=1;i<=3;i++){
            arrStudent(array);
        }

        for(int i=0;i<array.size();i++){
            Student s=array.get(i);
            System.out.println(s.getName()+","+s.getAge());
        }
    }

    public static void arrStudent(ArrayList<Student> array){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入姓名:");
        String name=sc.nextLine();
        System.out.println("请输入年龄:");
        String age=sc.nextLine();

        Student s=new Student(name,age);

        array.add(s);
    }
}

 

posted @ 2021-01-30 23:16  Testtext  阅读(95)  评论(0)    收藏  举报