List集合

目录

一.集合

二.集合与数组的区别

三.List集合


一.集合

  • 集合类存放于java.util包中。
  • 集合主要分为Collection和Map两个接口
  • 集合类型主要有3种:set(集)、list(列表)和map(映射)。
  • 集合存放的都是对象的引用,而非对象本身。

    总的来说,集合就是一个存放数据对象引用的容器。

二.集合与数组的区别

 

  • 数组能存放基本数据类型和对象,而集合类存放的都是对象的引用,而非对象本身。
  • 数组容易固定无法动态改变,集合类容量动态改变。 
  • 数组无法判断其中实际存有多少元素,length只告诉了数组的容量,而集合的size()可以确切知道元素的个数 
  • 集合有多种实现方式和不同适用场合,不像数组仅采用顺序表方式 
  • 集合以类的形式存在,具有封装、继承、多态等类的特性,通过简单的方法和属性即可实现各种复杂操作,大大提高了软件的开发效率

三.List集合

List<E>集合是一个有序列表,允许存放重复元素,其上层接口为Collection<E>,E为元素的类型。

List实现类有

  • LinkedList:双向循环链表,可以实现栈、队列和双向队列的功能,存储单元可以不连续。双向循环链表的查询效率低但是增删效率高。
  • ArrayList:底层是Object数组,所以ArrayList具有数组的查询速度快的优点以及增删速度慢的缺点。容量动态增长,在不使用<>限定的情况下可以存储任意元素,非线程安全
  • Vector:向量类,容量动态增长,线程安全。与ArrayList相似,区别是Vector是重量级的组件,使用使消耗的资源比较多。因此在考虑并发的情况下使用Vector保证线程安全,不考虑并发时使用ArrayList。

以下对LinkedList、ArrayList和Vector简单方法做一个总结,其全都是不带具体指向类型<>,如字符串类型List<String> list = new LinkedList<String>(); 。

LinkedList

import java.util.*;
public class Main {
    public static void main(String[] args) {
        //创建LinkedList集合
        LinkedList list = new LinkedList();
        //元素添加
        list.add(12);
        list.add('s');
        list.add("ad");
        //尾插
        list.addLast(45);
        //头插
        list.addFirst(84);
        System.out.println(list);
        //集合大小
        int len  = list.size();
        System.out.println(len);
        //修改某一元素值
        list.set(2,"adfad");
        System.out.println(list);
        //获取元素
        System.out.println(list.get(2));
        //移除元素,根据下标移除
        list.remove(3);
        //获取元素下标,不存在则返回-1
        System.out.println(list.indexOf(12));
        //清空list
        list.clear();
        System.out.println(list);
    }
}

//结果
/*
[84, 12, s, ad, 45]
5
[84, 12, adfad, ad, 45]
adfad
1
[]
*/

ArrayList

import java.util.*;
public class Main {
    public static void main(String[] args) {
        //创建ArrayList集合
        ArrayList arrayList = new ArrayList();
        //添加元素
        arrayList.add(12);
        arrayList.add('a');
        arrayList.add("dfd");
        arrayList.add(12);
        System.out.println(arrayList);
        //集合大小
        System.out.println(arrayList.size());
        //根据下标获取元素
        System.out.println(arrayList.get(3));
        //替换,下标、值
        arrayList.set(2,"abcdefg");
        //移除
        arrayList.remove(1);
        System.out.println(arrayList);
        //获取第一个值为指定值得元素的,没有则返回-1
        System.out.println(arrayList.indexOf(12));
        //清空
        arrayList.clear();
        System.out.println(arrayList);
    }
}
//结果
/*
[12, a, dfd, 12]
4
12
[12, abcdefg, 12]
0
[]
*/

Vector

import java.util.*;
public class Main {
    public static void main(String[] args) {
        //创建
        Vector vector = new Vector();
        //添加
        vector.add(12);
        vector.add('s');
        vector.add("ad");
        System.out.println(vector);
        //大小
        System.out.println(vector.size());
        //根据下标获取元素
        System.out.println(vector.get(2));
        //替换
        vector.set(1,"adfadfa");
        System.out.println(vector);
        //删除
        vector.remove(2);
        System.out.println(vector);
        //清空
        vector.clear();
        System.out.println(vector);
    }
}
//结果
/*
[12, s, ad]
3
ad
[12, adfadfa, ad]
[12, adfadfa]
[]
*/

好吧,最后确定这三者基本的add(),get(),remove(),set(),size(),clear()这些基本函数都是一样的,都是继承自其父类的,我应该是多此一举了,但是不想删除上面那些代码了,以后有什么其他的发现或者用到了他们其他的内容再进行添加。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值