List集合详解

1 篇文章 0 订阅
订阅专栏

*List集合

**

List集合有序、不可重复。以元素的添加顺序作为集合的排列顺序,用下标索引集合中的元素。
List因为使用下标索引元素,所以元素可重复。Set使用元素本身来索引,所以元素不能重复。
List的继承关系:
在这里插入图片描述
List继承了Collection的所有方法,也有自身的一些方法(下标操作):

void add(int index,Object element) 在指定处插入一个元素

boolean addAll(int index,Collection c) 在指定处插入c的所有元素

Object get(int index) 获取指定位置处的元素

int indexOf(Object obj) 返回该对象在集合中第一次出现的位置

int lastIndexOf(Object obj) 最后一次出现的位置

Object remove(int index) 删除并返回指定位置的元素

Object set(int index,Object obj) 替换/设置指定位置的元素,并返回旧的元素

List subList(int start,int end) 返回子List

ListIterator listIterator() 返回List集合专用的迭代器

Java8新增了sort()、replaceAll()2个方法,可以自定义排序规则、匹配模板。
List接口常用的实现类:

1、ArrayList、Vector。

ArrayList、Vector都是基于数组实现的List接口,内部都封装了一个动态的、长度可变的数组。

向ArrayList、Vector集合中添加元素,如果数组长度不够,会自动调用 ensureCapacity() 重新设置数组长度,一般不用我们操心。

如果要向ArrayList、Vector添加大量元素,可以手动调用 ensureCapacity() 一次性增大数组长度,这样可以减少重新分配的次数,提高性能。

ensureCapacity(int minCapacity) //参数是数组的最小元素个数

Vector有一个子类Stack,用于模拟栈这种数据结构。

ArrayList不是线程安全的,当多个线程同时访问、修改ArrayList集合时,需要手动同步该集合。

Vector是线程安全的,但这意味着Vector有更大的开销,所以性能低于ArrayList。

尽管Vector是线程安全的,但Vector的缺点太多了,尽量不要使用Vector

2、LinkedList

LinkedList不仅实现了List接口,还实现了Queue接口的子接口Deque。Queue接口用于模拟队列这种数据结构。

LinkedList是基于链表实现List接口的,内部维护了一个链表,来实现有序。

性能分析:

Queue集合、List集合是Java中的线性表结构。Queue很少使用。

ArrayList、Vector是基于数组的,LinkedList是基于链表的。

Vector既要维护一个数组,又要保证线程安全,开销较大,性能最差,一般不用。

ArrayList基于数组,查找元素较快,适合多查找的操作,但插入、删除需要移动大量数组元素。

LinkedList基于链表,适合经常插入、删除的操作,但查找效率不高。

虽然LinkedList、ArrayList都有 Object get(int index),void set(int index, Object obj)方法 ,

但LinkedList基于链表,它操作元素的方法基本上都要遍历链表,直到指定的元素才停下。尽管要遍历链表,但删除、插入时不用移动其它元素,速度较快。它的get()、set()都不是随机存取,要遍历链表,直到指定的index才停下来,速度很慢,获取、设置元素值尽量不要用get()、set(),而使用迭代器,遍历集合,迭代器更专业,速度更快。

ArrayList基于数组,它的get()、set()才是随机存取。尽管是随机存取,但插入、删除元素时要移动大量的元素,速度很慢。获取、设置元素的值不要用迭代器,尽量用get()、set(),随机存取更快。

java list重复_java中如何使list集合中元素不重复
weixin_28996271的博客
02-21 8161
list集合中的重复值进行处理,大部分是采用两种方法,一种是用遍历list集合判断后赋给另一个list集合,一种是用赋给set集合再返回给list集合。不同方法在不同情况下有各自的优势。相关免费视频教程推荐:java免费视频教程代码如下://set集合去重,不打乱顺序public static void main(String[] args){List list = new ArrayL...
Java:深入List集合的可重复性和Set集合的不可重复
Rex Chou的技术博客
03-29 1万+
Collection集合是单列集合,其下有两个分支,分别是List集合和Set集合List集合,可以存放重复的元素,比如其下的ArrayList集合。 Set集合,不可以存放重复的元素,比如其下的HashSet集合。 本文主要探讨这个“重复”针对的是什么。
java list重复随机
最新发布
weixin_40237438的博客
08-17 33
我整理的一些关于【Java】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/f2PFnNJava中实现不重复随机列表的探讨 在许多应用场景下,我们可能会需要从一个列表中随机选取元素,而又希望这些元素不重复。这种需求常见于游戏、抽奖、随机测试和数据选择等场景。本文将探讨如何在J...
java重复list_java – 组合ArrayList而不重复
weixin_30624185的博客
02-12 786
好吧,一种方法是迭代第二个列表,同时检查第一个列表中是否存在每个元素.如果没有,请添加它.public static void smartCombine(ArrayList first, ArrayList second) {for(Integer num : second) { // iterate through the second listif(!first.contains(n...
java list 不可重复_Java-List(有序,可重复,有索引),HashSet(无序,不可重复),TreeSet(有序,不可重复),Map(具有映射关系):HashMap与TreeMap(与...
weixin_36017951的博客
02-23 2480
1.概念java集合存放于包java.util包中,是一个用来存放对象的容器只能存放对象,例如:存放int是转换成Integer对象集合存放的是多个对象的引用,对象本身还是放在堆内存中集合可以存放不同类型,不限数量的数据类型2 HashSet(无序,不可重复)HashSet是set接口的典型实现,大多数时候使用Set集合时都使用这个实现类。我们大多数时候说的set集合指的都是HashSet集合Ha...
java list 数据不重复,JavaList集合去除重复数据的方法
weixin_35906775的博客
03-19 759
1. 循环list中的所有元素然后删除重复publicstaticListremoveDuplicate(Listlist){for(inti=0;ifor(intj=list.size()-1;j>i;j--){if(list.get(j).equals(list.get(...
Java List集合详解:实现类与核心方法
"JavaList集合及其实现类的方法详解" 在Java编程语言中,`List` 是一种接口,它是 `Collection` 接口的子接口。`List` 集合的特点在于它是一个有序的容器,允许存储重复元素,并且可以通过索引进行访问。在实际...
Kotlin 基础——List集合详解
热门推荐
一名互联网时代苟且偷生的 Android码农
04-14 1万+
黑马52期最新android视频完整高清不加密 看到很多卓友在到处寻找黑马52期的android视频。 特意前来分享! 链接:http://pan.baidu.com/s/1kTAaRif 密码:4ojs 或者直接下载:点击打开链接
javaList集合及其实现类的方法详解
08-25
JavaList 集合及其实现类的方法详解 List 集合Java 中最基本的集合类型之一,它提供了许多方法来操作和管理集合中的元素。在 Java 中,List 集合有多种实现类,例如 ArrayList、LinkedList、Vector 等,每种...
JavaList集合的遍历实例详解
08-26
Java中的List集合是一种常用的数据结构,它允许存储多个有序元素,并提供了各种操作这些元素的方法。在实际编程中,遍历List集合是常见的需求,用于访问和处理集合中的每个元素。本篇文章将详细介绍JavaList集合的...
Java中对List集合的常用操作详解
09-02
Java编程中,List集合Java集合框架的重要组成部分,它是一种有序的集合,可以存储重复的元素。本文将深入解析Java中对List集合的常用操作,帮助开发者更好地理解和使用List接口。 1. **添加、获取和删除元素** ...
List去重的5种方案
sspuflk的专栏
03-07 3212
List去重的5种实现方案
List去重的方法
qq_42761277的博客
12-07 4742
前言:在某些情况下我们需要对list去重,有人会问那为什么不一开始就使用Set或者LinkedHashSet去接收呢?因为我们可能会遇到历史遗留的问题,又或者说是方法返回值的类型只能是list,而我们又需要去重。那么有哪些方法呢 循环去重 使用for循环或者增强for循环去重 public class ListDistinctExample { public static void main(String[] args) { List<Integer> list = ne
List去除重复数据的五种方式
qq_39345032的博客
11-16 2222
List去除重复数据的五种方式 以下介绍五种-不同的方法去除 Java 中ArrayList中的重复数据 1.使用LinkedHashSet删除arraylist中的重复数据 LinkedHashSet是在一个ArrayList删除重复数据的最佳方法。LinkedHashSet在内部完成两件事: 删除重复数据 保持添加到其中的数据的顺序 Java示例使用LinkedHashSet删除arraylist中的重复项。在给定的示例中,numbersList是包含整数的arraylist,其中一些是重复的数字。
面试官提问:如何去掉list集合重复的元素?
Java极客技术
08-06 3463
每天早上七点三十,准时推送干货一、问题由来在实际开发的时候,我们经常会碰到这么一个困难:一个集合容器里面有很多重复的对象,里面的对象没有主键,但是根据业务的需求,实际上我们需要根据条件筛...
Java中自定义有序不重复集合——SetList
ilvest的博客
03-22 3449
需要将数据库中的某个表的数据拿出来处理 例如楼层和建筑表,有外键限制 一开始是使用List保存的,但实际操作中发现,从表中取出来楼层数据中的建筑有些是重复List接口实现的存储是有序可重复的,Set接口是无序不重复的,不能用下标定位数据 结合他们之间的优缺点和数据量,在不考虑性能的情况下,笔者写了有序不重复集合 总体是基于LinkedList实现的,重写其add
List 去重的 6 种方法,这个方法最完美!
程序员小明1024
12-22 2826
.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rgba(51, 51, 51, 1) } .markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .ma...
写文章

热门文章

  • List集合详解 2785

分类专栏

  • 集合 1篇

最新文章

2020年1篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家忻州玻璃钢花盆花器狗头玻璃钢雕塑玻璃钢鹿雕塑系列潞城玻璃钢仿铜雕塑机器人玻璃钢雕塑批发玻璃钢佛像雕塑哪家便宜珠海自发光动物玻璃钢雕塑工艺沁阳商场美陈植物墙沈阳仿铜玻璃钢雕塑厂家明磊玻璃钢雕塑铜仁六盘水玻璃钢雕塑报价玻璃钢造型人雕塑菏泽卡通玻璃钢雕塑厂家吉林景观玻璃钢雕塑加工文山市玻璃钢雕塑价格湖北桃子玻璃钢雕塑厂长沙哪里有玻璃钢雕塑汝阳玻璃钢雕塑厂家六安玻璃钢雕塑制造厂山东商业商场美陈厂家供应江苏天筑玻璃钢雕塑摆放玻璃钢果蔬雕塑多少钱山东周年庆典商场美陈厂家供应电镀玻璃钢雕塑制作揭阳玻璃钢卡通雕塑电话多少陕西玻璃钢雕塑价位rtm法玻璃钢雕塑销售长春树脂玻璃钢雕塑高安玻璃钢景观雕塑福建节庆商场美陈市场报价香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化