List接口的实现类

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

1、ArrayList类

该类实现了可变的数组,允许所有元素,包括null。可以根据索引位置对集合进行快速的随机访问。缺点是向指定的索引位置插入对象或删除对象的速度较慢。语法格式如下:

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

 2、LinkedList类

该类采用链表结构保存对象。这种结构的优点是便于向集合中插入和删除对象,经常需要向集合中插入、删除对象时,使用LinkedList类实现的List集合的效率较好;但对于随机访问集合中的对象,使用LinkedList类实现List集合的效率较慢。语法格式如下:

List<String> list2 = new LinkedList<String>();

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

例1、分别通过ArrayList、LinkedList类实例化List集合。

List list = new ArrayList();

List list2 = new LinkedList();

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

package test;

import java.util.*;

public class Main{
    public static void main(String []args){
        List list = new ArrayList();
        int i = (int)(Math.random()*(list.size()-1));//i = 0
        list.add("a");
        list.add("b");
        list.add("c");
        System.out.println("随机获取数组中的元素:"+list.get(i));
        list.remove(2);
        System.out.println("将索引是‘2’的元素从数组移除后,数组中的元素是:");
        for(int j = 0;j < list.size();j++){
            System.out.print(list.get(j)+" ");
        }
    }
}

3、List list = new ArrayList();

ArrayList list = new ArrayList();的区别?

List是一个接口,而ArrayList 是一个类。 ArrayList 继承并实现了List。
List list = new ArrayList();这句创建了一个ArrayList的对象后把上溯到了List。此时它是一个List对象了,有些ArrayList有但是List没有的属性和方法,它就不能再用了。而ArrayList list=new ArrayList();创建一对象则保留了ArrayList的所有属性。

为什么一般都使用 List list = new ArrayList() ,而不用 ArrayList alist = new ArrayList()呢? 
问题就在于List有多个实现类,如 LinkedList或者Vector等等,现在你用的是ArrayList,也许哪一天你需要换成其它的实现类呢?,这时你只要改变这一行就行了:List list = new LinkedList(); 其它使用了list地方的代码根本不需要改动。假设你开始用 ArrayList alist = new ArrayList(), 这下你有的改了,特别是如果你使用了 ArrayList特有的方法和属性。 ,如果没有特别需求的话,最好使用List list = new LinkedList(); ,便于程序代码的重构. 这就是面向接口编程的好处。

4、List<Integer>list =new ArrayList<Integer>(); <Integer> 什么意思?

表示了List里面放的对象是什么类型的,这样写就表示了,你List里面放的必须是Integer类型的,别的就会报错,所以,你可以先Integer it = new Integer();list.add(it);这样就相当于再list里面放入了一个Integer对象,你要放别的就不行了,懂了?

5、List<integer> list = new ArrayList<>();
List<integer> list = new ArrayList<integer>>();的区别?

JDK1.7之后增加了类型推导的特征,构造方bai法里可以不给出具体类型,编译器会从变量的声明中推导出类型。也就是说1.7之后这两个写法都可以,第一个更简便一点。

6、ArrayList<Integer> list = new ArrayList<>();

ArrayList list = new ArrayList();

如果方法返回值里加了ArrayList<Integer>,那么这里的Integer可以不加。

7、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值