10 java集合-ArrayList基本使用

简介: 集合概述集合,长度可变的容器

集合概述


集合,长度可变的容器


1 ArrayList集合可变长度原理:


ArrayList集合:底层原理也是,数组;初始大小长度为10

1 初始化一个长度为10的数组,数值依次存储,当数组存空间不够的时候进入第二环节;

2 创建一个原数组长度1.5倍的新数组,将原数组内容拷贝到新数组,再将第一环节没存到的数据,存到新数组中;

注意:集合与数组的选择【长度不变用数组,长度经常改变用集合】


2 ArrayList集合


ArrayList构造方1

public ArrayList();

泛型:<>

在类名之后加<>,可以使集合存储的数据类型,进行类型限制;

尖括号中只能使用引用数据类型,不能是基本数据类型

解决方案:【基本类型都有对应包装类】


基本数据类型 对应包装类

基本数据类型

对应包装类

int

Integer

short

Short

byte

Byte

double

Double

float

Float

chart

Character


3 ArrayList的常用成员方法


增

public boolean add(E e);向集合尾

部添加数据,返回添加成功的状态

public void add(int index,E element);插队添加
 ArrayList<String> list1 = new ArrayList<>();//创建list集合
        list1.add("张三");                    //添加元素

删

public E remove(int index);根据索引删除集合中的元素

public boolean remove(元素);根据元素删除集合中的内容,重复元素只删除第一个;返回添加成功的状态

ArrayList<String> list1 = new ArrayList<>();//创建list集合
        list1.add("张三");                    //添加元素
        list1.add("王五");
        list1.add("上官铁蛋");
        list1.add("张三");
        list1.add("诸葛订单");
        list1.remove("张三");                //根据元素删除
        list1.remove(2);                    //根据索引值删除元素

改

public E set(int index,E element);修改指定索引位置,返回被覆盖的元素

ArrayList list1 = new ArrayList<>();//创建list集合

 

list1.add("张三");                   //添加元素
        list1.add("王五");
        list1.add("上官铁蛋");
        list1.add("张三");
        list1.add("诸葛订单");  
        list1.set(2,"年薪百万");             //修改集合数据


查

public E get(int index);根据索引,获取集合中的元素

   ArrayList list1 = new ArrayList<>();//创建集合

   

list1.add("张三");                        //添加元素
        list1.add("王五");
        list1.add("上官铁蛋");
        list1.add("张三");
        list1.add("诸葛订单");
        list1.get(2);                           //查找集合元素


4 ArrayList集合基本案例


4.1 案例1


创建一个存储字符串集合,存储5个字符串元素,找出4个字的人名,并打印

public static void main(String[] args) {
        ArrayList<String> list1 = new ArrayList<>();//创建list集合
        list1.add("张三");                           //添加元素
        list1.add("王五");
        list1.add("上官铁蛋");
        list1.add("张三");
        list1.add("诸葛订单");
        for (int i = 0; i < list1.size(); i++) {    //遍历集合
            String name = list1.get(i);             //获取集合元素
            if (list1.get(i).length()==4){          //判断字符串长度是否为4
                System.out.println(name);           //打印4个字的名字
            }
        }
    }
目录
相关文章
|
Java 大数据 API
Java Stream API:现代集合处理与函数式编程
Java Stream API:现代集合处理与函数式编程
515 100
|
Java API 数据处理
Java Stream API:现代集合处理新方式
Java Stream API:现代集合处理新方式
477 101
|
算法 Java
50道java集合面试题
50道 java 集合面试题
|
Oracle Java 关系型数据库
掌握Java Stream API:高效集合处理的利器
掌握Java Stream API:高效集合处理的利器
593 80
|
安全 Java API
Java 8 Stream API:高效集合处理的利器
Java 8 Stream API:高效集合处理的利器
506 83
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
606 4
|
存储 算法 安全
Java集合框架:理解类型多样性与限制
总之,在 Java 题材中正确地应对多样化与约束条件要求开发人员深入理解面向对象原则、范式编程思想以及JVM工作机理等核心知识点。通过精心设计与周密规划能够有效地利用 Java 高级特征打造出既健壮又灵活易维护系统软件产品。
339 7
|
存储 缓存 安全
Java集合框架(二):Set接口与哈希表原理
本文深入解析Java中Set集合的工作原理及其实现机制,涵盖HashSet、LinkedHashSet和TreeSet三大实现类。从Set接口的特性出发,对比List理解去重机制,并详解哈希表原理、hashCode与equals方法的作用。进一步剖析HashSet的底层HashMap实现、LinkedHashSet的双向链表维护顺序特性,以及TreeSet基于红黑树的排序功能。文章还包含性能对比、自定义对象去重、集合运算实战和线程安全方案,帮助读者全面掌握Set的应用与选择策略。
1558 23
|
存储 Java Go
对比Java学习Go——函数、集合和OOP
Go语言的函数支持声明与调用,具备多返回值、命名返回值等特性,结合`func`关键字与类型后置语法,使函数定义简洁直观。函数可作为一等公民传递、赋值或作为参数,支持匿名函数与闭包。Go通过组合与接口实现面向对象编程,结构体定义数据,方法定义行为,接口实现多态,体现了Go语言的简洁与高效设计。
383 4
|
安全 Java 开发者
Java集合框架:详解Deque接口的栈操作方法全集
理解和掌握这些方法对于实现像浏览器后退功能这样的栈操作来说至关重要,它们能够帮助开发者编写既高效又稳定的应用程序。此外,在多线程环境中想保证线程安全,可以考虑使用ConcurrentLinkedDeque,它是Deque的线程安全版本,尽管它并未直接实现栈操作的方法,但是Deque的接口方法可以相对应地使用。
649 12