首页 > 其他分享 >ArrayList的常用方法

ArrayList的常用方法

时间:2023-12-02 09:34:17浏览次数:34  
标签:常用 ArrayList System add println array 方法 out

简介

ArrayList 是 java 集合框架中比较常用的数据结构了。继承自 AbstractList,实现了 List 接口。底层基于数组实现容量大小动态变化。允许 null 的存在。同时还实现了 RandomAccess、Cloneable、Serializable 接口,所以ArrayList 是支持快速访问、复制、序列化的。

ArrayList

  1. ArrayList实现了RandomAccess接口,表明ArrayList支持随机访问
  2. ArrayList实现了Cloneable接口,表明ArrayList可以clone的
  3. ArrayList实现了Serializable接口,表明ArrayList支持序列化的
  4. Vector不同,ArrayList不是线程安全的,在单线程下可以使用,在多线程中可以选择Vector或者CopyOnWriteArrayList
  5. ArrayList底层是一段连续的空间,并且可以动态扩容,是一个动态类型的顺序表。

缺点:

1、插入和删除的效率比较低。

2、根据内容查找元素的效率较低。

ArrayList使用

构造

ArrayList有三种构造方式:无参构造、利用其他的collection构造、指定顺序表的初始容量。

1.1 无参构造

无参构造类型是推荐的写法。

//Integer为整型的包装类型
List<Integer> list = new ArrayList<>();
12

1.2 指定初始容量

 List<Integer> list = new ArrayList<>(10);
 list.add(1);
 list.add(2);
 list.add(3);
1234

1.3 利用其他的collection进行构造

//构建一个与list1元素一样的list
 ArrayList<Integer> list2 = new ArrayList<>(list1);
12

注: 无论哪种构造形式,都应该避免省略类型,任意类型的元素都能够存放,使用时会带来很多麻烦。

基础操作

2.1 添加元素

添加元素到 ArrayList 可以使用 add() 方法:

public class Test{
    public static void main(String[] args) {
        ArrayList<String> array = new ArrayList<String>();
        sites.add("Hello");
        sites.add("CSDN");
        System.out.println(array);
    }
}

2.2删除元素

删除元素使用remove()方法:

public class Test {
    public static void main(String[] args) {
        ArrayList<String> array = new ArrayList<>();
        array.add("Hello");
        array.add("CSDN");
        array.add("IDEA");
        array.add("Java");
        System.out.println(array);
        array.remove(2);
        System.out.println(array);
    }
}

2.3 修改元素

修改元素可以使用 set() 方法:

public class Test {
    public static void main(String[] args) {
        ArrayList<String> array = new ArrayList<>();
        array.add("Hello");
        array.add("CSDN");
        array.add("IDEA");
        array.add("Java");
        System.out.println(array);
        array.set(2,"python"); // 第一个参数为索引,第二个参数为要修改的值
        System.out.println(array);
    }
}

2.4 访问元素

访问元素使用get()方法:

public class Test {
    public static void main(String[] args) {
        ArrayList<String> array = new ArrayList<>();
        array.add("Hello");
        array.add("CSDN");
        array.add("IDEA");
        array.add("Java");
        System.out.println(array);
        System.out.println(array.get(2)); // 获取位置2的元素

    }
}

2.5 计算大小

计算数组内元素个数使用size()方法:

public class Test {
    public static void main(String[] args) {
        ArrayList<String> array = new ArrayList<>();
        array.add("Hello");
        array.add("CSDN");
        array.add("IDEA");
        array.add("Java");
        System.out.println(array);
        System.out.println(array.size());
    }
}

2.6 遍历数组

遍历数组有三种方式:for循环遍历、for-each遍历、迭代器遍历。

public class Test {
    public static void main(String[] args) {
        ArrayList<String> array = new ArrayList<>();
        array.add("Hello");
        array.add("CSDN");
        array.add("IDEA");
        array.add("Java");
        System.out.println(array);
        //for循环遍历
        System.out.println("for:");
        for (int i = 0; i < array.size(); i++) {
            System.out.print(array.get(i)+" ");
        }
        System.out.println();
		//for-each遍历
        System.out.println("for-each:");
        for (String j:array) {
            System.out.print(j+" ");
        }
        System.out.println();
		//迭代器遍历
        System.out.println("迭代器:");
        Iterator<String> it = array.listIterator();
        while(it.hasNext()){
            System.out.print(it.next() + " ");
        }
        System.out.println();
    }

常用操作

方法 作用
void add(int index, E element) 将element元素插入到index位置
boolean addAll(Collection<? extends E> c) 将c中的元素全部插入
boolean remove(Object o) 删除第一个遇到的o元素
void clear() 清空
boolean contains(Object o) 判断o是否在表中
int indexOf(Object o) 返回第一个o所在的下标
int lastIndexOf(Object o) 返回最后一个o的下标
List<E> subList(int fromIndex, int toIndex) 截取fromindex到toindex的元素
public class Test {
    public static void main(String[] args) {
        ArrayList<String> array = new ArrayList<>();
        ArrayList<String> array2 = new ArrayList<>();
        //add插入元素
        array.add("Hello");
        array.add("CSDN");
        array.add("Java");
        array.add("IDEA");

        array2.add("python");
        array2.add("Java");

        array.add(1,"Data");
        System.out.println("array = " + array);
        //addAll添加另一个ArrayList集合
        array2.addAll(array);
        System.out.println("array2 = " + array2);
		//remove删除ArrayList中的指定元素
        array2.remove("Data");
        System.out.println("array2 = " + array2);
		//清空ArrayList的所有元素
        array.clear();
        System.out.println("array = " + array);
		//contains判断指定的元素是否存在与集合中
        System.out.println("Java是否在表中:" + array2.contains("Java"));
		//indexOf查询第一个元素的搜引(下标)
        System.out.println("array2.indexOf(\"Java\") = " + array2.indexOf("Java"));
		//lastIndexOf查询最后一个出现的元素搜引
        System.out.println("array2.lastIndexOf(\"Java\") = " + array2.lastIndexOf("Java"));
		//subList截取开始搜引到结束搜引的所有元素
        System.out.println("array2.subList(1,4) = " + array2.subList(1,4));
    }

标签:常用,ArrayList,System,add,println,array,方法,out
From: https://www.cnblogs.com/yhm050305/p/17871265.html

相关文章

  • LinkedList的常用方法
    介绍LinkedList类是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址。Java的LinkedList底层是一个双向链表,位于java.util包中,使用前需要引入它LinkedListLinkedList是一个继承于AbstractSequentialList的双......
  • JAVAOOP日历之Calendar日历类型的常见方法
    1、将字符串转化为date类型 2、为日历对象添加年、月、日在当前时间上加年、月、日3、获取日历对象的年、月、日 4、将日历对象转化为时间戳(两种方法) 5、两个时间类型的比较 感谢大佬的观看!!! ......
  • 查看进程线程的方法
    windows任务管理器可以查看进程和线程数,也可以用来杀死进程tasklist查看进程taskkill杀死进程netstat-ano|findstr端口号查看某个端口号下的进程taskkill/f/pid强制杀死某个进程linuxps-ef查看所有进程ps-fT-p<PID>查看某个进程(PID)的所有线程kill杀死进程......
  • matlab中绘制三维柱状图bar3函数的使用方法
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • 七天.NET 8操作SQLite入门到实战 - 第五天引入SQLite-net ORM并封装常用方法(SQLiteHel
    前言上一章节我们搭建好了EasySQLite的前后端框架,今天我们的主要任务是在后端框架中引入SQLite-netORM并封装常用方法(SQLiteHelper)。七天.NET8操作SQLite入门到实战详细教程第一天SQLite简介第二天在Windows上配置SQLite环境第三天SQLite快速入门第四天EasySQLite......
  • 软件设计实验 24:模板方法模式
      实验24:模板方法模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解模板方法模式的动机,掌握该模式的结构;2、能够利用模板方法模式解决实际问题。 [实验任务一]:数据库连接对数据库的操作一般包括连接、打开、使用、关闭等步骤,在数据库操作模板类中我......
  • Java 中ArrayList,LinkedList,Vector集合的相同点与区别是什么?
    ArrayList,LinkedList和Vector都继承自List接口。ArrayList和Vector的底层是动态数组,LinkedList的底层是双向链表.  ArrayList,LinkedList,Vector的区别我们先来了解ArravListArrayList:的数据结构是数组特点:查询快,增删慢,效率高,但是线程不安全Vector:数据结构是数组特点:查询快,......
  • go三种超时退出方法
    Golang实现超时退出有哪三种方式,你知道吗?原创 磊丰 Go语言圈 2023-11-2108:30 发表于美国收录于合集#学Go语言哪些事儿241个MySQL大牛带你全面剖析与系统梳理数据库(mysql等)知识分享,总结数据库技巧和方法,提升你的技术技能。45篇原创内容公众号......
  • 集合框架(三)ArrayList的常见使用
    ArrayList1、动态数组实现ArrayList的底层是一个数组,当数组空间不足时,会自动扩容为当前容量的1.5倍(JDK1.4及以前的版本扩容为当前容量的2倍)。扩容是通过创建一个新的数组,并将原始数组中的元素拷贝到新数组中完成的。2、与数组相比具有动态增长与普通数组相比,ArrayList具有动态......
  • ArrayList的常见方法和使用
    ArrayList的常见方法和使用1.add(Objectelement):向列表的尾部添加指定的元素,一次只能添加一个。ArrayListlist=newArrayList();list.add("jim");list.add("tom");list.add("kk");System.out.println(list......