Java中List接口重要实现类一ArrayList
1.java.util.ArrayList 集合数据存储的结构是数组结构。元素查找快,而增删就比较慢
所以如果要查询数据,遍历数据,ArrayList是最常用的集合
2.ArrayList是不同步的,所以效率高
3,我们都知道看一个类,先看它的构造方法
public ArrayList(int initialCapacity)构造一个具有指定初始容量的空列表。
参数:initialCapacity - 列表的初始容量 (*如果使用空参数,自动使用默认值)
抛出: IllegalArgumentException - 如果指定的初始容量为负
public ArrayList()构造一个初始容量为 10 的空列表。
public ArrayList(Collection<? extends E> c)构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。
参数:c - 其元素将放置在此列表中的 collection (<?extends E>这是泛型的上限限定,不能用在创建对象时,只能用在传递参数时,表示实参接收时必须是E的子类或者本身。
抛出: NullPointerException - 如果指定的 collection 为 null
package collection;
import java.util.ArrayList;
import java.util.Iterator;
/*
* 泛型的通配符:
* ?:代表任意类型
* 使用方式:
* 不能创建对象使用
* 只能作为方法参数使用
*/
public class Demo05Generic {
public static void main(String[] args) {
ArrayList<Integer> list01=new ArrayList<Integer>();//创建对象时表明类型,Integer类型
list01.add(1); //添加数据
list01.add(2);
ArrayList<String> list02=new ArrayList<String>();//String类型
list02.add("zsh");
list02.add("zms");
printArray(list01);
printArray(list02);
}
/*
* 定义一个方法,能够遍历所有类型的ArrayList集合
* 这时候不知道ArrayList集合使用什么数据类型,可以使用泛型的通配符
*/
public static void printArray(ArrayList<?> list)
{
Iterator<?> lt=list.iterator(); //Iterator:迭代器 (用来访问集合当中的元素,而不用暴露内部对象内部的表示。
while(lt.hasNext()) //Iterator接口 是对Collention进行迭代的迭代器,所以用接口引用指向实现类的对象
{ //hasNext方法用来判断集合的下一位是否还存在元素
Object ob=lt.next(); //next()方法是用来去除当前的元素(类似c语言当中的指针,每判断一位,指针就后移一位)
System.out.println(ob);
}
}
最后Java.ArrayList类中有很多方法,可以去Api文档查看
Java中List接口重要实现类一ArrayList的更多相关文章
- java中List接口的实现类 ArrayList,LinkedList,Vector 的区别 list实现类源码分析
java面试中经常被问到list常用的类以及内部实现机制,平时开发也经常用到list集合类,因此做一个源码级别的分析和比较之间的差异. 首先看一下List接口的的继承关系: list接口继承Colle ...
- Java 中的接口有什么作用?以及接口和其实现类的关系?
Java 中的接口有什么作用? - Ivony的回答 - 知乎 https://www.zhihu.com/question/20111251/answer/16585393 这是一个初学者非常常见的 ...
- Java NIO Path接口和Files类配合操作文件
Java NIO Path接口和Files类配合操作文件 @author ixenos Path接口 1.Path表示的是一个目录名序列,其后还可以跟着一个文件名,路径中第一个部件是根部件时就是绝对路 ...
- java中常用的包、类、以及包中常用的类、方法、属性----sql和text\swing
java中常用的包.类.以及包中常用的类.方法.属性 常用的包 java.io.*; java.util.*; java.lang.*; java.sql.*; java.text.*; java.a ...
- JAVA中限制接口流量、并发的方法
JAVA中限制接口流量可以通过Guava的RateLimiter类或者JDK自带的Semaphore类来实现,两者有点类似,但是也有区别,要根据实际情况使用.简单来说, RateLimiter类是控制 ...
- 第五节:详细讲解Java中的接口与继承
前言 大家好,给大家带来详细讲解Java中的接口与继承的概述,希望你们喜欢 什么是接口(interface) 接口中的方法都是抽象方法,public权限,全是抽象函数,不能生成对象 interface ...
- JAVA中的集合容器操作类
目录 JAVA中的集合容器操作类 List集合 ArrayList的操作方法说明 LinkedList Stack Set Map Queue 总结 JAVA中的集合容器操作类 Java容器类库总共分 ...
- java中map接口hashMap以及Enty之间的用法和关系
java中map接口hashMap以及Enty之间的转换 首先说的是map接口: Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value ...
- Java中各种集合(字符串类)的线程安全性!!!
Java中各种集合(字符串类)的线程安全性!!! 一.概念: 线程安全:就是当多线程访问时,采用了加锁的机制:即当一个线程访问该类的某个数据时,会对这个数据进行保护,其他线程不能对其访问,直到该线程读 ...
随机推荐
- Applied Social Network Analysis in Python 相关笔记3
如果是option2的话,答案选A. 这里节点s,从左边的选择,节点t从右边选择. 这里计算还是用以前的值,不用更新过的值.
- LGP4284题解
这个题,题面是[],出题人也是个[] 真就只放前向星过,把 vector 和离线建图都卡了... 题意: 一棵树,一条边有 \(p_i\) 的概率连接两个节点,一个点有 \(P_i\) 的概率亮着,问 ...
- map, reduce和filter(函数式编程)
# map可以用于对可遍历结构的每个元素执行同样的操作,批量操作: map(lambda x: x**2, [1, 2, 3, 4]) # [1, 4, 9, 16] map(lambda x, y: ...
- 作为一名Python开发,我谈Linux和mac的使用体验
我是一名Python开发,在2018.7~2021.6使用的是Linux系统 Deepin OS 作为自己的开发系统:在2022.7-至今使用的是 mac OS 系统作为开发系统. Deepin OS ...
- 马哥教育Linux网络班结业考试(架构师)-简答题题目(附答案)
1.叙述 centos7 启动图形界面的开机启动流程? 答:新版本的CentOS7里,已经做了调整.具体/etc/inittab 文件的第7行已经做出了说明: 系统已经使用'targets' 取代了运 ...
- NoSQL:Redis缓存、雪崩、击穿、穿透
Redis介绍 Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库 ...
- Go 语言控制台输入&生成随机数
Go 语言控制台输入&生成随机数 1. 不同基础类型之间的转化对于不同的基础类型之间的转化,Go 提供了 strconv包.它实现了字符串与其他基本数据类型之间的转化.其中最常用的数值转化函数 ...
- Rocket Mq 常用API 及简单运维
RocketMQ 常用API 消息 消息消费模式 消息消费模式由消费者来决定,可以由消费者设置MessageModel来决定消息模式. 消息模式默认为集群消费模式 consumer.setMessag ...
- CF226E Noble Knight's Path/bzoj4704 旅行
题目描述: bz luogu 题解: 主席树维护大力树剖. 一条路径上不允许过的点的个数是当前袭击数-$y$时袭击数, 所以允许经过的点的个数是总数-当前袭击数+$y$时袭击数. 用主席树去维护每个时 ...
- docker容器登录,退出等操作命令
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口 ...