Java ArrayList常用接口介绍及示例
Java List
常用类型
| 类型 | 特征 |
|---|---|
| ArrayList | 随机访问元素快;中间插入与删除元素较慢;操作不是线程安全的 |
| LinkedList | 中间插入与删除操作代价较低,提供优化的顺序访问;随机访问元素慢 |
ArrayList 常用 API
| 方法 | 描述 |
|---|---|
| boolean add(E object) | 再 ArrayList 尾存入对象 |
| void add(int location, E object) | 在 location 添加对象 |
| boolean addAll(Collection<? extends E> collection) | 将一个 Collection 对象中存储全部的对象复制并存入 |
| boolean addAll(int location, Collection<? extends E> collection) | 将一个 Collection 对象中存储全部的对象复制并存入location |
| boolean contains(Object object) | 是否包对象 object |
| boolean containsAll(Collection<?> collection) | 是否包含一个 Collection 对象 |
| boolean isEmpty() | ArrayList 是否为空 |
| E get(int location) | 获取 location 的对象 |
| E set(int location, E object) | 将某个位置的元素替换成 object |
| int indexOf(Object object) | 获取某个对象的位置(顺序遍历第一个) |
| int lastIndexOf(Object object) | 获取某个对象的位置(逆序遍历第一个) |
| int size() | 返回 ArrayList 存储的对象数量 |
| boolean remove(Object object) | 删除存储的某个对象 |
| E remove(int lcoation) | 删除位于 location 的对象 |
| boolean removeAll(Collection<?> collection) | 删除存储的某个 Collection 对象 |
| Object [] toArray() | ArrayList 转数组 |
| List<'E'> subList(int start, int end) | 获取位于 start 与 end 之间的 List |
| void clone() | 克隆ArrayList |
| void clear() | 移除ArrayList中所有对象 |
| Iterator<'E'> iterator() | 获取该 ArrayList 对应的迭代器对象 |
ArrayList 应用示例
ArrayList与数组之间的转换
// 转数组 List<String> list = new ArrayList<>();
String[] strings = new String[list.size()];
list.toArray(strings); // 或者
String[] strings = (String[])list.toArray(new String[list.size()]); // 数组转LIst
// 法1 快速,但是以视图形式返回,无法对数据进行删除及添加操作;
// 可用 set() 方法修改元素,但是原始List数据会随之改变 String[] s = {"abc", "def", "ghi"};
List<String> list = java.util.Arrays.asList(s); //法 2 慢,但是新生成一个ArrayList,可对List进行操作不会对原对象产生影响 List<String> assertList = new ArrayList();
Collections.addAll(assertList, strings);
ArrayList遍历方式
// 第一种,通过迭代器遍历。即通过Iterator去遍历。
Integer value = null;
Iterator iter = list.iterator();
while (iter.hasNext()) {
value = (Integer)iter.next();
} // 第二种,随机访问,通过索引值去遍历。
Integer value = null;
int size = list.size();
for (int i=0; i < size; i++) {
value = (Integer)list.get(i);
} // 第三种,for循环遍历。
Integer value = null;
for (Integer integer: list) {
value = integer;
}
Java ArrayList常用接口介绍及示例的更多相关文章
- DBUS及常用接口介绍
[原文] 1. 概述 1.1 DBUS概述 DBUS是一种高级的进程间通信机制.DBUS支持进程间一对一和多对多的对等通信,在多对多的通讯时,需要后台进程的角色去分转消息,当一个进程发消息 ...
- [刘阳Java]_Spring常用注解介绍_第6讲
Spring的注解是在Spring2.5的版本中引入的,目的简化XML配置.在企业开发过程中使用注解的频率非常高,但是学习注解的前提是大家一定要对Spring基于XML配置要熟悉,这是我个人建议,因为 ...
- C#中常用接口介绍
1. IComparable接口 IComparable接口定义通用的比较方法.由类型使用的IComparable接口提供了一种比较多个对象的标准方式.如果一个类要实现与其它对象的比较, 则必须实现I ...
- java===字符串常用API介绍(转)
本文转自:http://blog.csdn.net/crazy_kid_hnf/article/details/55102861 字符串基本操作 1.substring(from,end)(含头不含尾 ...
- Java +selenium Navigation接口介绍
Navigation接口主要实现对浏览器的前进.后退.打开网址.刷新当前页面等操作的. void back():就是操作当前页面后退,相当于网页的后退按钮. void forward():就是操作当前 ...
- Java ArrayList详细介绍和使用示例
①对ArrayList的整体认识 ArrayList是一个数组队列,相当于动态数组.与Java中的数组相比,它的容量能动态增长.它继承了AbstractList,实现了List,RandomAcces ...
- Java Annotation认知(包括框架图、详细介绍、示例说明)(转)
本文转自:http://www.cnblogs.com/skywang12345/p/3344137.html 网上很多关于Java Annotation的文章,看得人眼花缭乱.Java Annota ...
- Java 之 常用函数式接口
JDK提供了大量常用的函数式接口以丰富Lambda的典型使用场景,它们主要在 java.util.function 包中被提供.下面是最简单的几个接口及使用示例. 一.Supplier 接口 java ...
- Java中常用的七个阻塞队列介绍第一篇
Java中常用的七个阻塞队列介绍第一篇 在上一篇我们对Java中的队列分类做了简单的介绍.本文咱们主要来聊聊阻塞队列中的七个常用子类.这七个阻塞队列的学习步骤:先看源码,分析完源码之后,我们再来对每个 ...
随机推荐
- js获取后台传给前台的值
1.后台传给前台的方法 String rulemodeid=req.getParameter("rulemodeid"); req.setAttribute("rulem ...
- HDFS文件目录操作代码
分布式文件系统HDFS中对文件/目录的相关操作代码,整理了一下,大概包括以下部分: 文件夹的新建.删除.重命名 文件夹中子文件和目录的统计 文件的新建及显示文件内容 文件在local和remote间的 ...
- CentOS 7升级OpenSSH
目录 下载openssh安装包 安装telnet 卸载旧的openssh 安装依赖 安装openssh 重启验证 关闭telnet服务 参考 下载openssh安装包 下载地址 wget https: ...
- Leetcode之53. Maximum Subarray Easy
Leetcode 53 Maximum Subarray Easyhttps://leetcode.com/problems/maximum-subarray/Given an integer arr ...
- 一个提高照片质量的网站和一个改变照片DPI的方法
相信很多童鞋都有遇到过,碰到一张很喜欢的图片,想用来做背景什么的,蛋似--因为画质太AV了怕引起误会,所以不敢使用!很气--!! 这时大神就会跳出来说,画质不好?PS是用来吃si的么! 我:我才不会用 ...
- C学习笔记-数据类型
常量 在程序中不可变化的量,也就不可赋值 常用两种定义方式,#define和const 另外还有一个字符串常量 define #define MAX 100 #define在预编译的时候,其实也是做的 ...
- ARM 时区修改
ARM时区修改 ARM开发板环境时间设置好之后,重启会又变了,与之前设置时间正好相差8个小时,应该是时区的问题. 使用date查看时间是UTC时间而不是CST,解决办法: 从ubuntu中拷贝/usr ...
- [转帖]瀚高数据库创建uuid的方法
使用syssso登录,并执行下列语句 highgo=> select set_secure_level('off'); set_secure_level -------------------- ...
- (4.35)sql server清理过期文件【转】
在SQL Server中, 一般是用维护计划实现删除过期文件.不过直接用脚本也是可以的,而且更灵活. 下面介绍三种方法, 新建一个作业, 在作业的步骤里加上相关的脚本就可以了. --1. xp_del ...
- C++变量的声明和定义
1.变量的定义:变量的定义用于为变量分配存储控件,还可以为变量指定初始值.在一个程序中,变量有且仅有一个定义. 2.变量的声明:用于向程序表名变量的类型和名字.程序中变量可以声明多次,但只能定义一次. ...