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的更多相关文章

  1. java中List接口的实现类 ArrayList,LinkedList,Vector 的区别 list实现类源码分析

    java面试中经常被问到list常用的类以及内部实现机制,平时开发也经常用到list集合类,因此做一个源码级别的分析和比较之间的差异. 首先看一下List接口的的继承关系: list接口继承Colle ...

  2. Java 中的接口有什么作用?以及接口和其实现类的关系?

    Java 中的接口有什么作用? - Ivony的回答 - 知乎 https://www.zhihu.com/question/20111251/answer/16585393 这是一个初学者非常常见的 ...

  3. Java NIO Path接口和Files类配合操作文件

    Java NIO Path接口和Files类配合操作文件 @author ixenos Path接口 1.Path表示的是一个目录名序列,其后还可以跟着一个文件名,路径中第一个部件是根部件时就是绝对路 ...

  4. java中常用的包、类、以及包中常用的类、方法、属性----sql和text\swing

    java中常用的包.类.以及包中常用的类.方法.属性 常用的包 java.io.*; java.util.*; java.lang.*; java.sql.*; java.text.*; java.a ...

  5. JAVA中限制接口流量、并发的方法

    JAVA中限制接口流量可以通过Guava的RateLimiter类或者JDK自带的Semaphore类来实现,两者有点类似,但是也有区别,要根据实际情况使用.简单来说, RateLimiter类是控制 ...

  6. 第五节:详细讲解Java中的接口与继承

    前言 大家好,给大家带来详细讲解Java中的接口与继承的概述,希望你们喜欢 什么是接口(interface) 接口中的方法都是抽象方法,public权限,全是抽象函数,不能生成对象 interface ...

  7. JAVA中的集合容器操作类

    目录 JAVA中的集合容器操作类 List集合 ArrayList的操作方法说明 LinkedList Stack Set Map Queue 总结 JAVA中的集合容器操作类 Java容器类库总共分 ...

  8. java中map接口hashMap以及Enty之间的用法和关系

    java中map接口hashMap以及Enty之间的转换 首先说的是map接口: Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value ...

  9. Java中各种集合(字符串类)的线程安全性!!!

    Java中各种集合(字符串类)的线程安全性!!! 一.概念: 线程安全:就是当多线程访问时,采用了加锁的机制:即当一个线程访问该类的某个数据时,会对这个数据进行保护,其他线程不能对其访问,直到该线程读 ...

随机推荐

  1. Kotlin笔记小结(For Java Developer)

    这篇文章为kotlin学习记录,主要针对的是自己的知识盲区,不适用于新手. 文中所有demo均来自于kotlin官网 类型 整形 Type Size (bits) Min value Max valu ...

  2. java 中判断输入是否合法 if (变量名.hasNextInt())

    //案例: Scanner sc = new Scanner(System.in); System.out.println("你选择了新修改商品功能!"); System.out. ...

  3. LGP4590题解

    这题好像比较牛逼,好像又不是怎么样. 考虑两个串是如何计算 LCS 的. 这还不简单?\(dp[n][m]=\max(\max(dp[n-1][m],dp[n][m-1]),[s[n]==t[m]]d ...

  4. LGP2891题解

    题目大意 有 \(n\) 只奶牛,\(q\) 种食物和 \(p\) 种饮料,每只奶牛喜欢一些饮料和食物,但只能那一种,求最小配对数量. 首先来看一下这道题的简化版:没有饮料,该怎么做呢? 我会!裸的二 ...

  5. gdk-pixbuf tiff_image_parse函数整数溢出漏洞

    受影响系统:gdk-pixbuf gdk-pixbuf 2.36.6描述:CVE(CAN) ID: CVE-2017-2870 gdk-pixbuf是一个用于以各种格式加载图像和像素缓冲处理的库. 使 ...

  6. location 匹配规则

    location 匹配规则 语法规则 location [=||*|^~] /uri/ { - } 模式 含义 location = /uri = 表示精确匹配,只有完全匹配上才能生效 locatio ...

  7. 4月4日 python学习总结 os pickle logging

    1.序列化和反序列化 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling. 反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickl ...

  8. KVM 虚拟化基本知识,virtio工作原理

    KVM虚拟化的基本知识,virtio的工作流程及原理,virtio-vhost, virtio-vhost-user pci 配置空间,是谁在kick 写pci配置空间的?又是通过什么机制通知给qem ...

  9. windows server 2019 域控批量新增不用,只看这一篇就够了,别的不用看

    windows server 2019 域控批量新增不用,只看这一篇就够了,别的不用看 1. 新建excel表格 A B C D E 姓 名 全名 登录名 密码 李 四 李四 李四 test123!@ ...

  10. MindSpore尝鲜之Vmap功能

    技术背景 Vmap是一种在python里面经常提到的向量化运算的功能,比如之前大家常用的就是numba和jax中的向量化运算的接口.虽然numpy中也使用到了向量化的运算,比如计算两个numpy数组的 ...