集合(ArrayList)【1】

集合

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

1.ArrayList<E>

  • 可调整大小的数组实现

  • <E>是一种特殊的数据类型,泛型。

怎样使用?

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

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

1.1ArrayList构造方法和添加方法

public class ArrayListDemo01 {
​
    public static void main(String[] args) {
        //创建一个空的集合对象
        //ArrayList<String> array = new ArrayList<>();
        ArrayList<String> array = new ArrayList<String>();
        //将指定的元素追加到此集合的末尾
        array.add("hello");
        array.add("java");
        //添加到指定元素
        array.add(1,"this");
​
        //java.lang.IndexOutOfBoundsException: 集合的索引越界
        array.add(4,"无效");
​
        //输出集合
        System.out.println("array:"+array);
    }
​
​
}

存储字符串并遍历

/*
        需求:创建一个字符串的集合,存储三个字符串元素,使用程序实现再控制台遍历该集合
​
        思路:
            1.创建集合对象
            2.往集合中添加字符串对象
            3.遍历结合,首先要能够获取到集合中的每一个元素,这个通过get(int index)方法实现
            4.遍历集合,其次要能够获取到集合的长度,这个通过size()方法实现
            for(int i = 0;i<集合对象.size();i++){
                集合对象.get(i) 就是指定索引处的元素
            }
 */public class ArrayListDemo02 {
    public static void main(String[] args) {
        //创建集合对象
        ArrayList<String> array = new ArrayList<>();
​
        //往集合中添加字符对象
        array.add("索隆");
        array.add("乌索普");
        array.add("乔巴");
​
        //遍历集合
        for (int i = 0;i < array.size(); i++){
            System.out.println(array.get(i));
        }
​
    }
}
​

1.2ArrayList集合常用方法

public class ArrayListDemo02 {
    public static void main(String[] args) {
        //创建集合对象
        ArrayList<String> array = new ArrayList<>();
​
        //往集合中添加字符对象
        array.add("索隆");
        array.add("乌索普");
        array.add("乔巴");
​
        //删除指定的元素,并返回该位置的元素
        System.out.println(array.remove(1));
​
        //如是没有这个索引 删除 则会报索引越界异常     java.lang.IndexOutOfBoundsException:
        //System.out.println(array.remove(4));
//修改指定位置的元素,并返回修改后的元素
        array.set(0,"娜美"); 
​
        //如是没有这个索引 修改 则会报索引越界异常     java.lang.IndexOutOfBoundsException:
        //System.out.println(array.set(4,"王路飞"));
//返回指定索引位置的元素
        System.out.println(array.get(0));
​
        //如是没有这个索引 获取 则会报索引越界异常     java.lang.IndexOutOfBoundsException:
        //System.out.println(array.get(4));
//获取集合中的元素个数
        System.out.println(array.size());// 2
//遍历集合
        for (int i = 0;i < array.size(); i++){
            System.out.println(array.get(i));
        }
​
    }
}

1.3.1存储学生对象并遍历

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

 

思路:

1.定义学生类

2.创建集合对象

3.创建学生对象

4.添加学生对象到集合中

5.遍历集合,采用通用遍历格式实现

学生实体类

public class Student {
    private String name;
    private int age;
​
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
​
    public Student() {
    }
​
    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;
    }
}

Demo

/*
       •    需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现再控制台遍历该集合
​
•           思路:
​
•                   1.定义学生类
•                   2.创建集合对象
•                   3.创建学生对象
•                   4.添加学生对象到集合中
•                   5.遍历集合,采用通用遍历格式实现
 */
public class ArrayListDemo01 {
​
    public static void main(String[] args) {
        //创建集合对象
        ArrayList<Student> array = new ArrayList<>();
​
        //创建学生对象
        Student s1 = new Student("索隆",20);
        Student s2 = new Student("乔巴",36);
        Student s3 = new Student("乌索普",26);
​
        //添加到集合中
        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());
        }
​
    }
​
}

1.3.2存储学生对象并遍历(从键盘获取)[强化]

需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合 学生的姓名和年龄来自于键盘录入

思路: 1.定义学生类,为了键盘录入数据方便,把学生类中的成员变量都定义为String类型 2.创建集合对象 3.键盘录入学生对象所需要的数据 4.创建学生对象,把键盘录入的数据赋值给学生对象的成员变量 5.往集合中添加学生对象 6.遍历集合,采用通用遍历格式实现

学生实体类

public class Student {
​
    private String name;
    private String age;
​
    public Student() {
    }
​
    public Student(String name, String age) {
        this.name = name;
        this.age = age;
    }
​
    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;
    }
}

 

Demo

/*
       需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
                      学生的姓名和年龄来自于键盘录入
​
•           思路:
•                       1.定义学生类,为了键盘录入数据方便,把学生类中的成员变量都定义为String类型
•                       2.创建集合对象
•                       3.键盘录入学生对象所需要的数据
•                       4.创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
•                       5.往集合中添加学生对象
•                       6.遍历集合,采用通用遍历格式实现
 */
public class ArrayListDemo01 {
​
    private static Scanner sc = new Scanner(System.in);
​
    private static ArrayList<Student> array = new ArrayList<>();
​
    public static void main(String[] args) {
​
​
        //录入三次  提高代码复用性
        lr();
        lr();
        lr();
​
        //遍历集合
        for (int i = 0; i < array.size(); i++) {
            Student s = array.get(i);
            System.out.println(s.getName()+","+s.getAge());
        }
​
    }
​
    public static void  lr(){
        //从键盘录入学生姓名
        System.out.println("请输入学生名:");
        String name = sc.nextLine();
        //从键盘录入学生年龄
        System.out.println("请输入学生年龄:");
        String age = sc.nextLine();
​
        //创建学生对象
        Student s = new Student(name,age);
        array.add(s);
​
    }
}

 

原文地址:https://www.cnblogs.com/DiaoStudy/p/13638747.html