资讯专栏INFORMATION COLUMN

集合之ArrayList的介绍和常用方法

Baoyuan / 2042人阅读

摘要:把最后一个替换为被替换的元素被替换的元素集合遍历有种方式使用普通的循环返回集合中指定位置的元素。使用迭代器使用增强构造一个初始容量为的空列表。按照指定的迭代器所返回的元素顺序,将该中的所有元素添加到此列表的尾部。

package com.itheima.demo01.List;

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

/*

java.util.List接口 extends Collection接口
List接口的特点:
    1.有序的集合,存储元素和取出元素的顺序是一致的(存储123 取出123)
    2.有索引,包含了一些带索引的方法
    3.允许存储重复的元素

List接口中带索引的方法(特有)
    - public void add(int index, E element): 将指定的元素,添加到该集合中的指定位置上。
    - public E get(int index):返回集合中指定位置的元素。
    - public E remove(int index): 移除列表中指定位置的元素, 返回的是被移除的元素。
    - public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
注意:
    操作索引的时候,一定要防止索引越界异常
    IndexOutOfBoundsException:索引越界异常,集合会报
    ArrayIndexOutOfBoundsException:数组索引越界异常
    StringIndexOutOfBoundsException:字符串索引越界异常

*/
public class Demo01List {

public static void main(String[] args) {
    //创建一个List集合对象,多态
    List list = new ArrayList<>();
    //使用add方法往集合中添加元素
    list.add("a");
    list.add("b");
    list.add("c");
    list.add("d");
    list.add("a");
    //打印集合
    System.out.println(list);//[a, b, c, d, a]  不是地址重写了toString

    //public void add(int index, E element): 将指定的元素,添加到该集合中的指定位置上。
    //在c和d之间添加一个itheima
    list.add(3,"itheima");//[a, b, c, itheima, d, a]
    System.out.println(list);

    //public E remove(int index): 移除列表中指定位置的元素, 返回的是被移除的元素。
    //移除元素
    String removeE = list.remove(2);
    System.out.println("被移除的元素:"+removeE);//被移除的元素:c
    System.out.println(list);//[a, b, itheima, d, a]

    //public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
    //把最后一个a,替换为A
    String setE = list.set(4, "A");
    System.out.println("被替换的元素:"+setE);//被替换的元素:a
    System.out.println(list);//[a, b, itheima, d, A]

    //List集合遍历有3种方式
    //使用普通的for循环
    for(int i=0; i it = list.iterator();
    while(it.hasNext()){
        String s = it.next();
        System.out.println(s);
    }
    System.out.println("-----------------");
    //使用增强for
    for (String s : list) {
        System.out.println(s);
    }

    String r = list.get(5);//IndexOutOfBoundsException: Index 5 out-of-bounds for length 5
    System.out.println(r);

}

/*
ArrayList
ArrayList()

      构造一个初始容量为 10 的空列表。 

ArrayList(Collection c)

      构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。 

ArrayList(int initialCapacity)

      构造一个具有指定初始容量的空列表。 

方法摘要
boolean add(E e)

      将指定的元素添加到此列表的尾部。 

void add(int index, E element)

      将指定的元素插入此列表中的指定位置。 

boolean addAll(Collection c)

      按照指定 collection 的迭代器所返回的元素顺序,将该 collection 中的所有元素添加到此列表的尾部。 

boolean addAll(int index, Collection c)

      从指定的位置开始,将指定 collection 中的所有元素插入到此列表中。 

void clear()

      移除此列表中的所有元素。 

Object clone()

      返回此 ArrayList 实例的浅表副本。 

boolean contains(Object o)

      如果此列表中包含指定的元素,则返回 true。 

void ensureCapacity(int minCapacity)

      如有必要,增加此 ArrayList 实例的容量,以确保它至少能够容纳最小容量参数所指定的元素数。 

E get(int index)

      返回此列表中指定位置上的元素。 

int indexOf(Object o)

      返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1。 

boolean isEmpty()

      如果此列表中没有元素,则返回 true 

int lastIndexOf(Object o)

      返回此列表中最后一次出现的指定元素的索引,或如果此列表不包含索引,则返回 -1。 

E remove(int index)

      移除此列表中指定位置上的元素。 

boolean remove(Object o)

      移除此列表中首次出现的指定元素(如果存在)。 

protected void removeRange(int fromIndex, int toIndex)

      移除列表中索引在 fromIndex(包括)和 toIndex(不包括)之间的所有元素。 

E set(int index, E element)

      用指定的元素替代此列表中指定位置上的元素。 

int size()

      返回此列表中的元素数。 

Object[] toArray()

      按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组。 

T[]
toArray(T[] a)

      按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。 

void trimToSize()

      将此 ArrayList 实例的容量调整为列表的当前大小。 

*/
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/105187.html

相关文章

  • java源码

    摘要:集合源码解析回归基础,集合源码解析系列,持续更新和源码分析与是两个常用的操作字符串的类。这里我们从源码看下不同状态都是怎么处理的。 Java 集合深入理解:ArrayList 回归基础,Java 集合深入理解系列,持续更新~ JVM 源码分析之 System.currentTimeMillis 及 nanoTime 原理详解 JVM 源码分析之 System.currentTimeMi...

    Freeman 评论0 收藏0
  • 一份送给Java初学者指南

    摘要:编程思想第版这本书要常读,初学者可以快速概览,中等程序员可以深入看看,老鸟还可以用之回顾的体系。以下视频整理自慕课网工程师路径相关免费课程。 我自己总结的Java学习的系统知识点以及面试问题,目前已经开源,会一直完善下去,欢迎建议和指导欢迎Star: https://github.com/Snailclimb/Java-Guide 笔者建议初学者学习Java的方式:看书+视频+实践(初...

    banana_pi 评论0 收藏0
  • JDK源码那些事儿常用ArrayList

    摘要:前面已经讲解集合中的并且也对其中使用的红黑树结构做了对应的说明,这次就来看下简单一些的另一个集合类,也是日常经常使用到的,整体来说,算是比较好理解的集合了,一起来看下前言版本类定义继承了,实现了,提供对数组队列的增删改查操作实现接口,提供随 前面已经讲解集合中的HashMap并且也对其中使用的红黑树结构做了对应的说明,这次就来看下简单一些的另一个集合类,也是日常经常使用到的ArrayL...

    hizengzeng 评论0 收藏0
  • Java究极打基础ArrayList

    摘要:将之前第位置的元素置空,返回被删除的元素。平常常用的迭代器方法就是判断当前索引是否等于。最重要的是会更新,此时调用了父类的方法,会使,所以更新了,让后续的检查不会抛异常。 本篇主要介绍ArrayList的用法和源码分析,基于jdk1.8,先从List接口开始。 List List接口定义了如下方法: int size(); boolean isEmpty(); boolean con...

    DevTalking 评论0 收藏0
  • 一文掌握关于Java数据结构所有知识点(欢迎一起完善)

    摘要:是栈,它继承于。满二叉树除了叶结点外每一个结点都有左右子叶且叶子结点都处在最底层的二叉树。没有键值相等的节点。这是数据库选用树的最主要原因。 在我们学习Java的时候,很多人会面临我不知道继续学什么或者面试会问什么的尴尬情况(我本人之前就很迷茫)。所以,我决定通过这个开源平台来帮助一些有需要的人,通过下面的内容,你会掌握系统的Java学习以及面试的相关知识。本来是想通过Gitbook的...

    keithxiaoy 评论0 收藏0

发表评论

0条评论

Baoyuan

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<