ArrayList单列集合的简单使用常见方法


import java.util.ArrayList;
import java.util.Iterator;

/**
 * ArrayList单列集合的简单使用常见方法
 *
 * @author silence
 * 单列 :一次只能存储一个数据元素  list.add("张三"); 不像map集合可以存储一个键值对,两个元素 map.put("张三",23);
 * 有序 基于底层数组
 */
public class ArrayListDemo {
    public static void main(String[] args) {
        /*
         * 构建一个ArrayList  < > 泛型内填入想要存储的引用数据类型, 不不能为基本数据类型
         *如果不指定数据类型,则默认为 object类型 可以存储任意数据类型列: int string boolean 和 null
         * 如果想存储基本数据类型,如想存储int 类型 需要存储int类型的包装类Integer
         * 使用空参构造一个Arraylist
         */
        ArrayList<String> list = new ArrayList<>();
        //添加
        // method1(list);

        //修改
        //method2(list);

        //遍历
        // method3(list);

        //删除
        //  method4(list);


    }

    /**
     * 删除
     *
     * @param list list
     */
    private static void method4(ArrayList<String> list) {
        //遍历一下
        list.forEach(System.out::println);
        System.out.println("---------------------------------");
        //删除指定索引的数据
        list.remove(1);
        //删除所有张三的数据, 普通for循环需要倒着遍历
        for (int i = list.size() - 1; i >= 0; i--) {
            if ("张三".equals(list.get(i))) {
                list.remove(i);
            }
        }
        //删除所有叫王五的
        list.removeIf("王五"::equals);
        list.forEach(System.out::println);

    }

    /**
     * 遍历
     *
     * @param list list
     */
    private static void method3(ArrayList<String> list) {
        //增强for遍历  内部使用迭代器
        for (String s : list) {
            System.out.println(s);
        }
        System.out.println("-------------------------------------");
        //普通for循环 遍历,通过元素下标一次获得值进行输出
        //从0正这遍历  如果要在遍历中删除的话,下标索引会往前移位 报错或删除不完整
        // 可以在删除后面增加 i--  或者使用迭代器 或从后往前遍历
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        System.out.println("-------------------------------------");
        //通过迭代器遍历
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String next = iterator.next();
            System.out.println(next);
        }
        System.out.println("-------------------------------------");
        //使用foreach 遍历
        list.forEach(s -> System.out.println(s));
    }

    /**
     * 修改
     *
     * @param list list
     */
    private static void method2(ArrayList<String> list) {
        //遍历一下
        list.forEach(System.out::println);
        //将索引1的值修改为钱七 如果索引不存在报错 IndexOutOfBoundsException
        list.set(1, "钱七");
        System.out.println("---------------------------------");

        //遍历通过判断修改将所有张三的都会修改会孙悟空,可以通过合理的break 跳出
        for (int i = 0; i < list.size(); i++) {
            if ("张三".equals(list.get(i))) {
                list.set(i, "孙悟空");
                break;
            }
        }
        list.forEach(System.out::println);
    }

    /**
     * 常用的添加方法
     *
     * @param list list
     */
    private static void method1(ArrayList<String> list) {
        //常用的添加方法,添加在集合元素最后的位置,第一次存储在0下标的位置, 第二次存储在1的位置
        list.add("王五");
        list.add("张三");
        list.add("赵六");
        list.add("王五");
        list.add("猪八戒");
        list.add("张三");
        //指定存储的下标位置,但不能超过存储元素的下标,
        // 指定的索引必须小于等于list.size()
        list.add(1, "李四");
    }
}


你可能感兴趣的:(集合,java,集合,Arraylist)