java基础篇:ArrayList集合

java基础篇

IDEA常用快捷键

快捷键功能
Alt+Enter自动修正代码
Ctrl+Y删除光标所在行
Ctrl+D复制光标所在行的内容,插入光标位置下面
Ctrl+Alt +L格式化代码
Ctrl+/单行注释,再按取消注释
Ctrl+Shift+/选中代码注释,多行注释,再按取消注释。
Alt+Ins自动生成代码,toString,get,set等方法
Alt+Shift+上下箭头移动当前代码行

ArrayList集合概述

基本使用

package cn.itcast.day01.demo01.array;

import java.util.ArrayList;

/*
* 数组的长度不可以发生改变。
* 但是ArrayList集合的长度是可以随意变化的。
*
* 对于ArrayList来说,有一个尖括号<E>代表泛型
* 泛型:也就是装在集合当中的所有元素,全都是统一的类型。
* 注意:泛型只能是引用类型,不能是基本类型。
*
* 注意事项:
* 对于ArrayList集合来说,直接打印得到的不是地址值,而是内容。
* 如果内容是空,得到的是空的中括号。 []
*
* */
public class Demo02ArrayList {
    public static void main(String[] args) {
        /*
        * 创建了一个ArrayList集合,集合的名称是:list,里面装的全都是String字符串的数据
        * 备注:从JDK1.7+开始,右侧的尖括号内部可以不写内容,但是<>本身还是要写的
        * */
        ArrayList<String> list = new ArrayList<>();
        System.out.println(list); // []

        // 向集合当中添加一些数据,需要用到add方法
        list.add("刘诗诗");
        list.add("唐嫣");
        list.add("杨幂");
        list.add("迪丽热巴");
        // list.add(100); // 错误写法:因为创建的时候尖括号泛型已经说了是字符串,添加进去的元素就必须都是字符串才可以
        System.out.println(list); // [刘诗诗, 唐嫣, 杨幂, 迪丽热巴]
    }
}

ArrayList常用方法和遍历

package cn.itcast.day01.demo01.array;

import java.util.ArrayList;

/*
* ArrayList当中的常用方法有:
*
* public boolean add(E e):向集合当中添加元素,参数的类型和泛型一致。返回值代表添加是否成功
* 备注:对于ArrayList集合来说,add添加动作一定是成功的,所以返回值可用可不用。
* 但是对于其他集合(今后学习)来说,add添加动作不一定成功。
*
* public E get(int index):从集合当中获取元素,参数是索引编号,返回值就是对应位置的元素
*
* public E remove(int index):从集合当中删除元素,参数是索引编号,返回值就是被删除的元素。
*
* public int size():获取集合的尺寸长度,返回值是集合中包含的元素个数
* */
public class Demo03ArrayListMethod {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        System.out.println(list);

        // 向集合中添加元素:add
        boolean success = list.add("刘诗诗");
        list.add("唐嫣");
        list.add("吕一");
        list.add("舒畅");
        System.out.println(list); // [刘诗诗, 唐嫣, 吕一, 舒畅]
        System.out.println("添加的动作是否成功:" + success);

        // 从集合中获取元素,get。索引值从0开始
        String name = list.get(2);
        System.out.println("第2号索引的位置:" + name);

        // 从集合中删除元素,remove。索引值从0开始
        String whoRemove = list.remove(2);
        System.out.println(list); // [刘诗诗, 唐嫣, 舒畅]

        // 获取集合的长度尺寸,也就是其中元素的个数
        int size = list.size();
        System.out.println("集合的长度是:" + size);

    }
}

package cn.itcast.day01.demo01.array;

import java.util.ArrayList;

public class Demo04ArrayListEach {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("迪丽热巴");
        list.add("杨幂");
        list.add("唐嫣");
        list.add("刘诗诗");
        // 集合遍历
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}

ArrayList集合存储基本数据类型

package cn.itcast.day01.demo01.array;

import java.util.ArrayList;
/*
* 如果希望向集合ArrayList当中存储基本类型数据,必须使用基本数据类型对应的"包装类"
* 基本类型  包装类(引用类型,包装类都位于java.lang包下)
* byte      Byte
* short     Short
* int       Integer 【特殊】
* long      Long
* float     Float
* double    Double
* char      Character【特殊】
* boolean   Boolean
*
* 从JDk 1.5+开始,支持自动装箱、自动拆箱,自动完成不需要人工干预。
* 自动装箱:基本类型 -> 包装类型。
    * 既有基本类型也有引用类型,二者之间可以自动转换。基本类型 自动变成 引用类型    
* 自动拆箱:包装类型 -> 基本类型。
    * 包装类型自动拆出来一个基本类型
* */
public class Demo05ArrayListBasic {
    public static void main(String[] args) {
        ArrayList<String> listA = new ArrayList<>();
        // 错误写法!泛型只能是引用类型,不能是基本类型
        // ArrayList<int> listB = new ArrayList<>();

        ArrayList<Integer> listC = new ArrayList<>();
        listC.add(100);
        listC.add(200);
        listC.add(300);
        System.out.println(listC); // [100, 200, 300]

        // 获取数组元素
        Integer num = listC.get(1);
        System.out.println("第一号元素是:" + num);
    }
}

ArrayList练习

存储随机数字

package cn.itcast.day01.demo01.array;

import java.util.ArrayList;
import java.util.Random;

/*
* 题目:生成6个1~33之间的随机整数,添加到集合,并遍历集合。
*
* 思路:
* 1.需要存储6个数字,创建一个集合,<Integer>
  2.产生随机数,需要用到Random
  3.用循环6次,来产生6个随机数字:for循环
  4.循环内调用r.nextInt(int n),参数是33,0~32,整体+1才是1~33
  5.把数字添加到集合中:add
  6.遍历集合:for/size/get
* */
public class Demo01ArrayListRandom {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();
        Random r = new Random();
        for (int i = 0; i < 6; i++) {
            int num = r.nextInt(33) + 1;
            list.add(num);
        }
        // 遍历集合
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}

存储自定义对象

package cn.itcast.day01.demo01.array;

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

package cn.itcast.day01.demo01.array;

import java.util.ArrayList;

/*
* 题目:自定义4个学生对象,添加到集合,并遍历
*
* 思路:
* 1.自定义Student学生类,四个部分:
* 2.创建一个集合,用来存储学生对象。泛型:<Student>
  3.根据类,创建4个学生对象
  4.将4个学生对象添加到集合中:add
  5.遍历集合:for/size/get
* */
public class Demo02ArrayListStudent {
    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<>();

        Student one = new Student("洪七公", 20);
        Student two = new Student("段誉", 30);
        Student three = new Student("黄药师", 40);
        Student four = new Student("南帝", 50);

        list.add(one);
        list.add(two);
        list.add(three);
        list.add(four);

        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            System.out.println("姓名:" + stu.getName() + ",年龄" + stu.getAge());
        }
    }
}

按指定格式遍历

package cn.itcast.day01.demo01.array;

import java.util.ArrayList;

/*
* 题目:定义以指定格式打印集合的方法(ArrayList类型作为参数),使用{}扩起集合,使用@分隔每个元素
* 格式参照{元素@元素@元素}
*
* System.out.print(list);  [10,20,30]
* printArrayList(list);  {10@20@30}
* */
public class Demo03ArrayListPrint {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("张三丰");
        list.add("张四丰");
        list.add("张五丰");
        list.add("张六丰");

        System.out.println(list);
        printArrayList(list);
    }
    /*
    * 定义方法的三要素:
    * 1.返回值类型:只是进行打印而已,没有运算,没有结果;所以用void
    * 2.方法名称:printArrayList
    * 3.参数列表:ArrayList
    * 
    * 重点练习:集合作为方法的参数
    * */
    public static void printArrayList(ArrayList<String> list) {
        // {10@20@30}
        System.out.print("{");
        for (int i = 0; i < list.size(); i++) {
            String name = list.get(i);
            if(i == list.size() -1) {
                System.out.print(name + "}");
            }else{
                System.out.print(name + "@");
            }
        }
    }
}

筛选集合中的随机

package cn.itcast.day01.demo01.array;

import java.util.ArrayList;
import java.util.Random;

/*
* 题目:用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到小集合当中。
* 要求使用自定义的方法来实现筛选。
*
* 分析:
* 1.需要创建一个大集合,用来存储int数字:<Integer>
  2.随机数字就用Random nextInt
  3.循环20次,把随机数字放入大集合:for循环、add方法
  4.定义一个方法,用来进行筛选。
      筛选:根据大集合,筛选符合要求的元素:得到小集合
      三要素:
        1.返回值类型:ArrayList小集合(里面元素个数不确定)
        2.方法名称:getSmallList
        3.参数列表:ArrayList大集合(装着20个随机数字)
  5.判断是偶数:num % 2 == 0
  6.如果是偶数,就放到小集合当中,否则不放。
* */
public class Demo04ArrayListReturn {
    public static void main(String[] args) {
        ArrayList<Integer> bigList = new ArrayList<>();
        Random r = new Random();
        for (int i = 0; i < 20; i++) {
            int num = r.nextInt(100) + 1; // 1~100
            bigList.add(num);
        }

        ArrayList<Integer> smallList = getSmallList(bigList);
        System.out.println("偶数总共有多少个:" + smallList.size());
        for (int i = 0; i < smallList.size(); i++) {
            System.out.println(smallList.get(i));
        }
    }
    // 这个方法,接收大集合参数,返回小集合结果
    // 【重点练习】:让集合作为方法的返回值
    public static ArrayList<Integer> getSmallList(ArrayList<Integer> bigList) {
        // 创建一个小集合,用来装偶数结果
        ArrayList<Integer> smallList = new ArrayList<>();
        for (int i = 0; i < bigList.size(); i++) {
            Integer num = bigList.get(i);
            if(num % 2 == 0) {
                smallList.add(num);
            }
        }
        return smallList;
    }
}

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: ArrayList集合的增加元素: 可以使用add()方法或者addAll()方法,将元素加入到ArrayList集合中。 ArrayList集合的删除元素: 可以使用remove()方法,将特定的元素从ArrayList集合中删除。 ArrayList集合的修改元素: 可以使用set()方法,修改ArrayList集合中的某个特定位置的元素。 ArrayList集合的查询元素: 可以使用get()方法或者contains()方法,查询ArrayList集合中的元素。 ### 回答2: ArrayListJava一个非常常用的集合,它提供了一个可变大小的数组实现。在实际开发中,有时候需要对ArrayList进行增删改查的操作。下面我将结合实例详细介绍ArrayList的增删改查操作。 1. 增加操作 ArrayList提供了三个add()方法来增加元素,如下所示: ```java public boolean add(E e) // 将指定元素追加到集合末尾 public void add(int index, E element) // 将指定元素插入到指定位置 public boolean addAll(Collection<? extends E> c) // 将指定集合中的所有元素追加到集合末尾 ``` 下面是一个示例,展示如何使用add()方法向ArrayList添加元素: ```java import java.util.ArrayList; import java.util.Collections; import java.util.List; public class ArrayListDemo { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); // 创建一个ArrayList list.add(10); // 第一种方法:将10添加到列表末尾 list.add(0, 5); // 第二种方法:将5添加到列表的第一个位置 Collections.addAll(list, 20, 30, 40); // 第三种方法:将20, 30, 40添加到列表末尾 System.out.println(list); // 输出 [5, 10, 20, 30, 40] } } ``` 2. 删除操作 ArrayList提供了三个remove()方法来删除元素,如下所示: ```java public boolean remove(Object o) // 删除指定元素 public E remove(int index) // 删除指定位置的元素 public boolean removeAll(Collection<?> c) // 删除指定集合中的所有元素 ``` 下面是一个示例,展示如何使用remove()方法从ArrayList中删除元素: ```java import java.util.ArrayList; import java.util.List; public class ArrayListDemo { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); // 创建一个ArrayList list.add(5); list.add(10); list.add(20); list.remove(new Integer(10)); // 删除元素10 list.remove(0); // 删除第一个元素 System.out.println(list); // 输出 [20] } } ``` 3. 修改操作 ArrayList提供了set()方法来修改元素,如下所示: ```java public E set(int index, E element) // 修改指定位置的元素 ``` 下面是一个示例,展示如何使用set()方法修改ArrayList中的元素: ```java import java.util.ArrayList; import java.util.List; public class ArrayListDemo { public static void main(String[] args) { List<String> list = new ArrayList<>(); // 创建一个ArrayList list.add("apple"); list.add("banana"); list.add("orange"); list.set(0, "pear"); System.out.println(list); // 输出 [pear, banana, orange] } } ``` 4. 查找操作 ArrayList提供了get()和indexOf()方法来查找元素,如下所示: ```java public E get(int index) // 获取指定位置的元素 public int indexOf(Object o) // 获取指定元素在集合中的位置 ``` 下面是一个示例,展示如何使用get()和indexOf()方法查找ArrayList中的元素: ```java import java.util.ArrayList; import java.util.List; public class ArrayListDemo { public static void main(String[] args) { List<String> list = new ArrayList<>(); // 创建一个ArrayList list.add("apple"); list.add("banana"); list.add("orange"); String first = list.get(0); int index = list.indexOf("orange"); System.out.println(first); // 输出 apple System.out.println(index); // 输出 2 } } ``` 总之,ArrayList一个非常实用的集合,它提供了丰富的方法来支持增删改查操作。在实际开发中,我们需要根据实际需求来选择合适的方法来完成操作。希望以上内容对您有所帮助。 ### 回答3: arraylist一个常用的集合类,它是一个可动态增长的数组,与普通数组相比具有更方便的增删改查操作。实现arraylist集合的增删改查有以下几个方法。 1.增加元素:使用add(Object obj)方法可以在列表末尾添加一个元素。如果我们要在指定位置插入元素,则可以使用add(int index, Object obj)方法。 2.删除元素:使用remove(Object obj)方法可以删除指定的元素,indexof(Object obj)方法可以查找指定元素的位置,remove(int index)方法可以删除指定位置上的元素。 3.修改元素:使用set(int index, Object obj)方法可以修改指定位置上的元素。 4.查找元素:使用get(int index)方法可以获取指定位置上的元素,indexof(Object obj)方法可以查找指定元素的位置,contains(Object obj)方法可以判断指定元素是否在列表中。 在使用arraylist集合时需要注意以下几点: 1.默认情况下,arraylist集合中存储的是Object类型的元素,如果在使用时需要存储其他类型的数据,则需要进行强制类型转换。 2.使用arraylist集合时,不需要指定容量大小,集合会根据需要动态的增长。 3.同样的元素可以重复出现在arraylist集合中。 4.由于arraylist集合是基于数组实现的,因此在进行查找、插入和删除操作时,可能需要移动多个元素,效率较低。 在实际使用中,应根据实际需求选择合适的集合类。如果需要快速的查找、插入和删除元素,可以考虑使用基于哈希表实现的集合类,如hashset或hashmap;如果需要按照一定顺序遍历元素,则可以使用基于树结构实现的集合类,如treeset或treemap。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

落花流雨

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

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

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

打赏作者

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

抵扣说明:

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

余额充值