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

本文共 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

你可能感兴趣的文章
node.js原型继承
查看>>
揭露让Linux与Windows隔阂消失的奥秘(1)
查看>>
我的友情链接
查看>>
Mysql备份和恢复策略
查看>>
linux17-邮件服务器
查看>>
AS开发JNI步骤
查看>>
Android NDK开发:JNI基础篇
查看>>
使用Maven命令快速建立项目结构
查看>>
二分查找,php
查看>>
python面试题-django相关
查看>>
Python——eventlet.greenthread
查看>>
记大众点评之面试经历
查看>>
第三章:基本概念
查看>>
Jersey+mybatis实现web项目第一篇
查看>>
C++形参中const char * 与 char * 的区别
查看>>
espresso 2.0.4 Apple Xcode 4.4.1 coteditor 价格
查看>>
Object-C中emoji与json的问题
查看>>
linux 命令
查看>>
灾后重建
查看>>
Nothing 和 Is
查看>>