Java的编程之旅43——集合中的ArrayList

目录

1.Java中的集合

2.ArrayList类

3.遍历集合中的元素

1.for循环遍历

1.fori遍历

2.foreach遍历

2.迭代法

3.stream流

4.案例:显示学生信息


1.Java中的集合

Java中的集合是一组用于存储和操作对象的数据结构。它们位于Java集合框架中,并提供了多种类型的集合类来满足不同的需求。

Java集合框架包括以下接口和类:

  1. Collection接口:是所有集合类的根接口,它定义了一些通用的方法,如添加、删除、检查、遍历等。
  2. List接口:继承自Collection接口,表示有序的集合,可以包含重复元素。常见的实现类有ArrayList、LinkedList、Vector等。
  3. Collection接口:是所有集合类的根接口,它定义了一些通用的方法,如添加、删除、检查、遍历等
  4. Set接口:继承自Collection接口,表示无序的集合,不可以包含重复元素。常见的实现类有HashSet、TreeSet等。
  5. Map接口:表示键值对的集合,其中键是唯一的。Map接口没有继承自Collection接口。常见的实现类有HashMap、TreeMap、LinkedHashMap等。
  6. Queue接口:继承自Collection接口,表示待处理的元素集合。常见的实现类有LinkedList、PriorityQueue等。

这些集合类提供了各种方法来添加、删除、查找、迭代等操作元素。它们还提供了不同的实现方式和性能特点,可以根据具体的需求选择适合的集合类。

使用集合类可以更方便地处理和操作数据,比如存储学生数据、管理订单、实现高效的搜索和排序等。集合类还提供了很多便利的方法和工具类,用于对集合进行操作和处理。

2.ArrayList类

ArrayList类是Java中的一个集合类,它实现了List接口,并提供了动态数组的功能。它的作用是用于存储和操作一组对象。

ArrayList类的特点包括:

  1. 动态大小:ArrayList的大小是可变的,可以根据需要动态增加或减少。这意味着可以根据实际需求灵活地调整集合的大小。

  2. 有序集合:ArrayList中的元素是有序的,添加元素的顺序与元素在集合中的位置一致。可以根据索引来访问和操作集合中的元素。

  3. 可重复元素:ArrayList允许在集合中包含重复的元素。可以使用add()方法添加重复元素,同时获取元素时也可以获取到重复的元素。

ArrayList类提供了一系列方法,用于添加、删除、修改和获取集合中的元素。例如:

  • add()方法:用于向ArrayList中添加元素。
  • public class Demo {
        public static void main(String[] args) {
            ArrayList<Object> fruit = new ArrayList<>();
            fruit.add("apple");
            fruit.add("banana");
            fruit.add("orange");
            fruit.add("pear");
            System.out.println(fruit);//[apple, banana, orange, pear]
        }
    }
  • remove()方法:用于删除ArrayList中的元素。
  • fruit.remove(0);
    System.out.println(fruit);//[banana, orange, pear]

    集合中的元素是从0开始的

  • set()方法:用于修改ArrayList中指定位置的元素。
  • fruit.set(1,"grape");
    System.out.println(fruit);//[apple, grape, orange, pear]

    修改下标位置为1的元素值为grape

  • get()方法:用于获取ArrayList中指定位置的元素。
  • System.out.println(fruit.get(2));//orange
  • size()方法:用于获取ArrayList的大小,即集合中元素的数量。
  • System.out.println(fruit.size());//4
  • isEmpty()方法:用于检查ArrayList是否为空。
  • System.out.println(fruit.isEmpty());//false

除此之外,ArrayList还提供了一些其他方法,如迭代、排序、查找等操作,以便更方便地对集合进行操作和处理。

总之,ArrayList类的作用是提供了一个便于管理和操作一组对象的动态数组。它可以根据需要动态调整大小,并提供一系列方法来方便地添加、删除、修改和获取集合中的元素。

3.遍历集合中的元素

1.for循环遍历

1.fori遍历

        ArrayList<Object> list = new ArrayList<>();
        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");
        list.add("5");

        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i)+" ");
        }

2.foreach遍历

        ArrayList<Object> ls = new ArrayList<>();
        ls.add("1");
        ls.add("2");
        ls.add("3");
        ls.add("4");
        ls.add("5");

        for (Object l:
             ls) {
            System.out.print(l);
        }

2.迭代法

        Iterator<Object> it = ls.iterator();
        while (it.hasNext()){
            System.out.print(it.next());
        }

这段代码是使用迭代器来遍历一个集合对象ls,并将每个元素打印出来。

首先,通过调用ls的iterator()方法,获得一个Iterator对象it。

然后,使用while循环和it.hasNext()方法来判断集合中是否还有下一个元素。

在循环体内部,使用it.next()方法获取下一个元素,并通过System.out.print()方法将其打印出来。注意,这里使用print而不是println,所以打印的元素会连续输出而不是每个元素占一行。

当集合中的所有元素都被遍历完毕后,循环结束。

3.stream流

list.forEach(System.out::print);

这段代码使用了Java 8的Lambda表达式和forEach方法来遍历一个集合对象list,并将每个元素打印出来。

forEach方法是集合的一个默认方法,它接受一个函数式接口Consumer作为参数。在这里,使用的是Java 8的方法引用语法System.out::print,表示将System.out的print方法作为Consumer的实现。可以将其看作是一个匿名函数,接受一个参数并执行System.out.print方法。

当调用list的forEach方法时,会将集合中的每一个元素依次传递给Consumer的accept方法进行处理。在这里,每个元素都会被传递给System.out.print方法进行打印。

所以,这段代码的作用就是遍历list中的每个元素,并将其打印出来。

4.案例:显示学生信息

1.创建一个学生类

public class Student {
    private String name;
    private String sex;
    private int age;

    public Student() {
    }

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

    public String getName() {
        return name;
    }

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

    public String getSex() {
        return sex;
    }

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

    public int getAge() {
        return age;
    }

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

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", age=" + age +
                '}';
    }
}

2.显示信息类(主类)

package com.H.Demo01_ArrayList;

import java.util.ArrayList;

/**
 * @Description:
 * @Author: Hongming
 */
public class StuTs {
    public static void main(String[] args) {
        ArrayList<Student> li = new ArrayList<>();
        initStudent(li);
        showStudent(li);
    }

    /**
     * 显示学生信息
     * @param li
     */
    private static void showStudent(ArrayList<Student> li) {
        for (Student stu:
             li) {
            System.out.printf("%-10s%-8s%-6d\n",stu.getName(),stu.getSex(),stu.getAge());
        }
    }

    /**
     * 添加学生信息
     * @param li
     */
    private static void initStudent(ArrayList<Student> li) {
        li.add(new Student("张三","男",20));
        li.add(new Student("李四","男",21));
        li.add(new Student("王二","男",21));
        li.add(new Student("周五","男",20));
        li.add(new Student("赵六","男",20));
    }
}

这段代码是一个简单的示例,它演示了如何使用ArrayList存储学生对象,并显示学生的信息。

首先,定义了一个名为Student的类,它有三个属性:name、sex和age,以及对应的getter和setter方法。

在StuTs类的main方法中,创建了一个ArrayList对象li来存储学生对象。然后,调用了initStudent方法来添加学生信息到li中。

initStudent方法使用li的add方法来添加了5个学生对象到li中,每个学生对象包括姓名、性别和年龄信息。

showStudent方法用于显示学生信息,它使用了增强型for循环来遍历li中的每个学生对象,然后使用System.out.printf方法来格式化输出学生的姓名、性别和年龄。

最后,在main方法中调用了showStudent方法来显示学生信息。

整体来说,这段代码展示了如何使用ArrayList存储和显示学生信息。

  • 21
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

惊爆点大男主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值