码迷,mamicode.com
首页 > 其他好文 > 详细

List集合

时间:2017-10-10 13:03:07      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:alt   arraylist   span   获得   ima   ack   添加元素   效率比较   速度慢   

List集合包括list接口以及List接口的所有实现类。list集合中的元素允许重复,各元素的顺序就是对象插入的顺序。类似Java数组,用户可以通过索引(元素在集合中的位置)来访问集合中的元素。

List接口

list接口继承了collection接口,因此包含collection中的所有方法。此外,list接口还定义了以下两个非常重要的方法。

  • get(int index):获得指定索引位置的元素
  • set(int index,Object obj):将集合中指定索引位置的对象修改为指定的对象

List接口的实现类

list接口的常用实现类有ArrayList和LinkedList。

  1. ArrayList类实现了可变数组,允许保存所有的元素,也可以包含null,并根据索引位置对集合进行快速的随机访问;缺点是向指定的索引位置插入对象或者删除对象的速度慢
  2. LinkedList类采用链表结构保存对象。这种结构的优点是便于向集合中插入和删除对象,需要向集合中插入,删除对象时,采用LinkedList类实现的list集合的效率较高,但对于随机访问集合中的对象,使用LinkedList类实现list集合的效率比较低

使用list集合时通常声明为list类型,可通过不同的实现类来实例化集合

分别通过ArrayList,LinkedList类实例化list集合,代码如下:

List<E> list = new ArrayList<>();
List<E> list2 = new LinkedList<>();

上面的代码中,E可以是合法的Java数据类型。例如,如果集合中的元素为字符串类型,那么E可以修改为String

创建类Damo1,在主方法中创建集合对象,通过Math类的random()方法随机获取集合中的某个元素,然后移除数组中索引位置为“2”的元素,最后遍历数组。

import java.util.ArrayList;
import java.util.List;

public class Demo1 {//创建类Demo1

    public static void main(String[] args) {//主方法
        List<String> list = new ArrayList<>();//创建集合对象
        list.add("a");//向集合中添加元素
        list.add("b");
        list.add("c");
        int i = (int) (Math.random()*list.size());//获得0~2之间的随机数
        System.out.println("随机获取数组中的元素:"+list.get(i));
        list.remove(2);//将指定索引位置的元素从集合中移除
        System.out.println("将索引是2的元素从数组移除后,数组中的元素是:");
        for(int j =0;j<list.size();j++){
            System.out.println(list.get(j));
        }

    }

}

运行结果如下所示。Math类的random()方法可以获得一个0.0~1.0之间的随机数

技术分享

 

 

 

 

说明:与数组相同,集合的索引也是从0开始

 

List集合

标签:alt   arraylist   span   获得   ima   ack   添加元素   效率比较   速度慢   

原文地址:http://www.cnblogs.com/qimengru/p/7644807.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!