Java中ArrayList类详细介绍
Java中ArrayList类详细介绍
ArrayList是一个可变长度数组,它实现了List接口,因此它也可以包含重复元素和Null元素,也可以任意的访问和修改元素,随着向 ArrayList 中不断添加元素,其容量也自动增长。不过ArrayList是非同步(同步的意思是如果多个线程同时访问一个实例,任何一个线程对实例做了修改之后,其他线程所访问到的实例应该是修改过的最新的实例)的,
我们经常使用List list = Collections.synchronizedList(new ArrayList<E>()); 来返回一个支持ArrayList的同步列表。
它有以下几个常用方法:
add(int index, E element)
将指定的元素插入此列表中的指定位置。
add(E e)
将指定的元素添加到此列表的尾部。
addAll(Collection<? extends E> c)
按照指定 collection 的迭代器所返回的元素顺序,将该 collection 中的所有元素添加到此列表的尾部。
addAll(int index, Collection<? extends E> c)
从指定的位置开始,将指定 collection 中的所有元素插入到此列表中。
clear()
移除此列表中的所有元素。
set(int index, E element)
用指定的元素替代此列表中指定位置上的元素。
get(int index)
返回此列表中指定位置上的元素。
List被称为序列,用户可以对每个元素的插入位置进行精确的控制,也可以根据元素的索引访问元素。
这种实现主要是通过add(int index,E element)和get(int index)两个方法,序列还允许元素重复和空元素,对List元素的访问主要有两种方法:通过索引和迭代,可以通过set(int index,E element)来实现替代指定索引处的元素,List提供了特别的迭代器ListIterator,该迭代器除了可以访问List的元素以外还可以来插入和替换元素,可以通过List的ListIterator()方法来获取一个迭代器。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
java 对ArrayList进行分页实例代码
java 对ArrayList进行分页 概述 系统与系统之间的交互,通常是使用接口的形式.假设B系统提供了一个批量的查询接口,限制每次只能查询50条数据,而我们实际需要查询500条数据,这个时候可以对这500条数据做分批操作,分10次调用B系统的批量接口. 如果B系统的查询接口是使用List作为入参,那么要实现分批调用的话,可以利用ArrayList的subList方法来处理. 代码 sublist方法的定义: List<E> subList(int fromIndex, int toInde
-
Arrays.asList方法总结
话不多说,请看代码: import java.util.Arrays; import java.util.List; /** * * 本类演示了Arrays类中的asList方法 * 通过四个段落来演示,体现出了该方法的相关特性. * * (1) 该方法对于基本数据类型的数组支持并不好,当数组是基本数据类型时不建议使用 * (2) 当使用asList()方法时,数组就和列表链接在一起了. * 当更新其中之一时,另一个将自动获得更新. * 注意:仅仅针对对象数组类型,基本数据类型数组不具备该特性
-
java中List、Array、Map、Set等集合相互转换
java中List.Array.Map.Set等集合相互转换 在java中,我们经常需要对List.Array等做一些转换操作,当然转换方法有很多种,但哪种方法既方便又高效呢?在这里向大家介绍一下集合间的最佳转换方法. 1.List转换为Array List<String> list = new ArrayList<String>(); list.add("China"); list.add("Switzerland"); list.add(
-
java中ArrayList与LinkedList对比详情
ArrayList,LinkedList都是Collection接口的通用实现方式,两者采用了不用的存储策略,用来适应不同场合的需要. 实现方式 ArrayList的内部采用集合的方式存储数据 唯一需要注意的是对于容量超过阈值的处理逻辑,数组的默认容量大小是10,最大容量是Integer.Max_Value,超过最大容量会抛内存溢出异常, 扩容机制看下面 扩容后的容量是原有容量的1.5倍 LinkedList的实现方式 内部采用双向链表Node内部类来存储数据,由于采用了双向链表,LinkedL
-
ArrayList详解和使用示例_动力节点Java学院整理
第1部分 ArrayList介绍 ArrayList简介 ArrayList 是一个数组队列,相当于 动态数组.与Java中的数组相比,它的容量能动态增长.它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口. ArrayList 继承了AbstractList,实现了List.它是一个数组队列,提供了相关的添加.删除.修改.遍历等功能. ArrayList 实现了RandmoAccess接口,即提
-
浅谈Arrays.asList()方法的使用
首先,该方法是将数组转化为list.有以下几点需要注意: (1)该方法不适用于基本数据类型(byte,short,int,long,float,double,boolean) (2)该方法将数组与列表链接起来,当更新其中之一时,另一个自动更新 (3)不支持add和remove方法 上代码: package com.hdu.test; import java.util.Arrays; import java.util.List; abstract public class AsllistTest
-
java ArrayList按照同一属性进行分组
java ArrayList按照同一属性进行分组 前言: 通常使用SQL查询一批数据的时候,可以利用SQL中的GROUP BY语句对数据进行分组,但是有时候出于对性能的考虑,不会使用GROUP BY,而是先把数据捞出来后,使用代码,在内存中按照某个属性进行分组. 代码 public class SkuVo { private Long skuId; private String productName; private Long brandStoreSn; public SkuVo(Long s
-
Java中ArrayList和LinkedList之间的区别_动力节点Java学院整理
一.ArrayList ArrayList是一个可以处理变长数组的类型,这里不局限于"数"组,ArrayList是一个泛型类,可以存放任意类型的对象.顾名思义,ArrayList是一个数组列表,因此其内部是使用一个数组来存放对象的,因为Object是一切类型的父类,因而ArrayList内部是有一个Object类型的数组类存放对象.ArrayList类常用的方法有add().clear().get().indexOf().remove().sort().toArray().toStri
-
Java中ArrayList类详细介绍
Java中ArrayList类详细介绍 ArrayList是一个可变长度数组,它实现了List接口,因此它也可以包含重复元素和Null元素,也可以任意的访问和修改元素,随着向 ArrayList 中不断添加元素,其容量也自动增长.不过ArrayList是非同步(同步的意思是如果多个线程同时访问一个实例,任何一个线程对实例做了修改之后,其他线程所访问到的实例应该是修改过的最新的实例)的, 我们经常使用List list = Collections.synchronizedList(new Arra
-
Java中ArrayList类的使用方法
Java中ArrayList类的用法 1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和IList接口 灵活的设置数组的大小 2.如何使用ArrayList 最简单的例子: ArrayList List = new ArrayList(); for( int i=0;i <10;i++ ) //给数组增加10个Int元素 List.Add(i); //..
-
java arrayList遍历的四种方法及Java中ArrayList类的用法
java arrayList遍历的四种方法及Java中ArrayList类的用法 package com.test; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ArrayListDemo { public static void main(String args[]){ List<String> list = new ArrayList<String
-
详解Java中ArrayList类
ArratList 类:存放同一数据类型容器(只能为引用数据类型,因实际其内部存放的是地址) 1.导入其所在包 import java.util.ArratList 2.创建对象 ArrayList<E> 对象名=new ArrayList<>(); E:泛型数据类型,指定对象名中存放指定类型的数据,不可省略,需为引用数据类型 3.使用 即对象名.方法(参数可能有可能无) 注意:当打印对象名时,非地址,而是一个如同python中列表一般,存放的是各个数据[元素1,元素2],若无数据
-
Java中CompletableFuture 的详细介绍
目录 1.概述 1.0 创建 CompletableFuture 的对象的工厂方法 1.1 non-async 和 async 区别 1.1.1 non-async 示例:注册 action 的时候任务可能已经结束 1.1.2 non-async 示例:注册 action 的时候任务未完成 1.2 Run 类方法 1.3 Accept 类方法 1.4 Apply 类方法 2 单个任务执行完成后执行一个动作(action) 2.0 示例 exceptionally 3 两个任务执行编排 4 多个任
-
Java中StringBuilder类的介绍与常用方法
目录 一.StringBuilder类介绍 二.StringBuilder类的体系图 三.StringBuilder类的常用方法 四.String类.StringBuffer类和StringBuilder类比较 补充:String和StringBuilder之间的相互转换 总结 一.StringBuilder类介绍 StringBuilder也是lang包中的类,即java.lang.StringBuilder类. 该类也是用来保存字符串的,它也是一个可变的字符序列. StringBuilder
-
JAVA中Context的详细介绍和实例分析
最熟悉的陌生人--Context 刚刚学android或者js等,都会看见这个频繁的字眼--Context. 意为"上下文". 本文主要记述,Context到底是什么.如何理解Context.一个APP可以有几个Context.Context能干啥.Context的作用域.获取Context.全局获取Context技巧. 思考: Java:万物皆对象.Flutter:万物皆组件. 俗语:"没对象吗?自己new一个啊~" 既然大多数情况可以new一个实例,那么,我们在
-
java中dart类详细讲解
dart 是一个面向对象的语言;面向对象有 继承 封装 多态 dart的所有东西都是对象,所有的对象都是继承与object类 一个类通常是由属性和方法组成的 在dart中如果你要自定义一个类的话,将这个类放在main函数外面 类名使用大驼峰方法名使用小驼峰 1.定义这个类的属性和方法 //定义一个类的属性和方法 class Person { String name = '张三'; int age = 19; void getInfo() { // print('我叫$name,今年$age');
-
Java中的参数传递详细介绍
目录 前言 1.值传递 2.引用传递 3.String类型传递 4.举例 总结 前言 Java中的参数传递:分为值传递和引用传递但本质上,Java中只有值传递.引用传递,其实可以理解为传的是类似指针的东西.值传递就是把基本变量的值拷贝一份,传递这个拷贝.引用传递则是传递的引用的地址,也就是该变量在内存空间的地址. 1.值传递 只有基本数据类型采用值传递,特点是传递的是值的拷贝,传递完后两者就没有关系了.也就是说方法内和方法外的值互不相干 基本数据类型:·整型:int,long,byte,shor
-
Java中ArrayList类的用法与源码完全解析
System.Collections.ArrayList类是一个特殊的数组.通过添加和删除元素,就可以动态改变数组的长度. 一.优点 1. 支持自动改变大小的功能 2. 可以灵活的插入元素 3. 可以灵活的删除元素 二.局限性 跟一般的数组比起来,速度上差些 三.添加元素 1.publicvirtualintAdd(objectvalue); 将对象添加到ArrayList的结尾处 ArrayList aList = new ArrayList(); aList.Add("a"); a
随机推荐
- php简单实现MVC
- Delphi 中内存映射对于大文件的使用
- 得到XML文档大小的方法
- Java线程同步实例分析
- php 创建以UNIX时间戳命名的文件夹(示例代码)
- Codeigniter实现发送带附件的邮件
- Python编写简单的HTML页面合并脚本
- 使用Python中PDB模块中的命令来调试Python代码的教程
- Android自定义View实现简单的圆形Progress效果
- 在使用JSON格式处理数据时应该注意的问题小结
- PowerShell批量安装msi后辍软件的方法
- NodeJs的fs读写删除移动监听
- python获取标准北京时间的方法
- 简介Redis中的showlog功能
- js前台分页显示后端JAVA数据响应
- 详解jQuery简单的表单应用
- javascript中的几个运算符
- java 判断二进制文件的方法
- Netty学习教程之Netty与Marshalling结合发送对象
- Android编程使用ListView实现数据列表显示的方法