博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java集合之ArrayList链表基础
阅读量:6614 次
发布时间:2019-06-24

本文共 2759 字,大约阅读时间需要 9 分钟。

ArrayList可变数组

arrayList继承AbstractList抽象类,实现list接口,底层基于数组实现。可存放null,除了非同步的之外,大致等同Vector。适用快速访问,复制、序列化。

构造函数:

ArrayList() 默认初始容量为10

ArrayList(int initialCapacity) 指定初始容量

增加大量数据之前,先扩容量。

void ensureCapacity(int minCapacity)

size()方法是数组现在实际大小,而非数组容量大小。

ArrayList线程不同步,List list=Collections.synchronizedList(new ArrayList(…));实现同步。

常用方法:

boolean add(Element e)尾部添加元素

void add(int index,Element e)指定位置添加

boolean addAll(int index,Collection<? extends E> c)指定位置添加指定集合所有元素

boolean addAll(Collection<? extends E> c)在尾部添加指定集合所有元素

void clear()清空链表

void ensureCapacity(int minCapacity) 增加链表容量

Object clone() 浅拷贝arraylist实例

remove(int index)删除指定位置元素

protected void removeRange(int start,int end)删除指定范围的元素

get(int index)取指定位置元素

Object[] toArray()链表转换为数组

<T> T[] toArray(T[] a) 链表转换为数组

E set(int index,E element)指定位置替换

contains(Object o)搜索是否包含指定元素

int indexOf(Object o)返回元素在链表中第一次出现的位置,没有则返回-1

int lastIndexOf(Object o)最后一次出现位置,同上

boolean isEmpty()判断链表是否为空

int size()       返回链表长度

示例:

package test;

import java.util.*;

 

public class arrayListTest {

 

    public static void main(String args[]) {

        ArrayList<String> list = new ArrayList<String>();

        LinkedList<String> listLink = new LinkedList<String>();

       

        listLink.add("listLink1");

        listLink.add("listLink2");

        listLink.add("listLink3");

        listLink.add("listLink4");

        listLink.add("listLink5");

       

        list.add("list1");

        list.add("list2");

        list.add(2, "list3");

        list.add("list4");

        list.addAll(listLink);

       

        System.out.println("1-The arraylist contains the following elements: "+ list);

        int pos = list.indexOf("list2");//返回元素在列表中第一次出现的位置

        System.out.println("2-The index of list2 is: " + pos);

        boolean emptyFg = list.isEmpty();

        System.out.println("3-the arraylist is empty or not: " + emptyFg);

        int size = list.size();

        System.out.println("4-The size of the list is: " + size);

        boolean element = list.contains("list5");//判断元素存在与否

        System.out.println("5-the arraylist contains the object list5: "+ element);

        String item = list.get(0);//获取指定位置元素

        System.out.println("6-The item is the index 0 is: " + item);

       

        System.out.println("7-for循环链表");

        for (int i = 0; i < list.size(); i++) {

            System.out.println("8-Index: " + i + " - Item: " + list.get(i));

        }

        System.out.println("9-foreach循环链表");

        for (String str : list) {

            System.out.println("10-元素: " + str);

        }

        System.out.println("11-使用迭代器iterator循环链表");

        for (Iterator<String> it = list.iterator(); it.hasNext();) {

            System.out.println("12-元素 is: " + it.next());

        }

        list.set(1, "位置1set元素");

        System.out.println("13-替换指定位置元素: " + list);

        list.remove(0);

        list.remove("list3");

        System.out.println("14-删除元素后: " + list);

        String[] simpleArray = list.toArray(new String[list.size()]);

        System.out.println("15-链表转换为数组: "+ Arrays.toString(simpleArray));//需要toString方法转换,否则输出的是地址

    }

}

转载于:https://www.cnblogs.com/perfumeBear/p/9482019.html

你可能感兴趣的文章
Debugexperience about SQLite & LitePal:创建数据库闪退?注意小括号
查看>>
开发者如何全面提升职场竞争力系列课程第一讲——技术人员如何快速具备产品能力体系?让自己更值钱!...
查看>>
个人安装caffe过程中遇到的问题及解决方案
查看>>
网络直播应成为价值出口(人民时评)
查看>>
如何用纯 CSS 创作一个金属光泽 3D 按钮特效
查看>>
代码推荐哪家强?Facebook 机器学习技术有话讲
查看>>
西游团队的核心你以为是唐僧麽?
查看>>
Effective java中文总结翻译版
查看>>
06 集成学习 - Boosting - GBDT算法原理、总结
查看>>
Android项目实战(三十六):给背景加上阴影效果
查看>>
Java Web之Spring Boot
查看>>
【对讲机的那点事】九招帮你轻松选购数字对讲机
查看>>
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 13 章 并发控制
查看>>
中澜视讯获腾讯TOPIC基金数千万元A轮融资 ,短视频内容价值显现
查看>>
skyline5:三维skyline fly文件发布网络包并在iis发布
查看>>
.NET中JSON的序列化和反序列化的几种方式
查看>>
可能是把Java内存区域讲的最清楚的一篇文章
查看>>
Ionic3开发环境搭建-VS Code
查看>>
Docker 搭建私有仓库
查看>>
django 1.8 官方文档翻译: 3-2-3
查看>>