前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >#集合笔记二#list集合特有功能及案例迭代

#集合笔记二#list集合特有功能及案例迭代

作者头像
吾爱乐享
发布于 2018-07-12 09:31:31
发布于 2018-07-12 09:31:31
4440
举报
文章被收录于专栏:吾爱乐享吾爱乐享

1、List集合的特有功能

  • List集合的增加功能

void add(int index,E element); 在指定位置添加元素

  • List集合的删除功能

Object remove(int index) 根据索引删除元素,返回被删除的元素

  • List集合的获取功能

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

  • List集合的修改功能

Object set(int index , object element) 根据索引修改元素,返回被修改的元素

2、List集合存储字符串并遍历(迭代器和普通for)

  1. package com.fenxiangbe.collection;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. public class Test3 {
  5. public static void main(String[] args) {
  6. List l = new ArrayList();
  7. l.add(“a”);
  8. l.add(“b”);
  9. l.add(“c”);
  10. l.add(“d”);
  11. for (int i = 0; i < l.size(); i++) {
  12. System.out.println(l.get(i));
  13. }
  14. }
  15. }

3、List集合存储自定义对象并遍历(迭代器和普通for)

  1. package com.fenxiangbe.collection;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import com.fenxiangbe.bean.Student;
  5. public class Test4 {
  6. public static void main(String[] args) {
  7. List l = new ArrayList();
  8. l.add(new Student(“张三”, 23));
  9. l.add(new Student(“李四”, 24));
  10. l.add(new Student(“王五”, 25));
  11. for (int i = 0; i < l.size(); i++) {
  12. System.out.println(l.get(i));
  13. }
  14. }
  15. }

4、并发修改异常出现的原因?解决方案?

  • 报错:ConcurrentModificationException
  • 原因:迭代器是依赖于集合而存在的。我们在通过迭代器迭代的过程中,用集合往集合中添加了元素,而并没有重新获取迭代器,所以,报错。

解决方案:

  • a:迭代器迭代元素,迭代器修改元素(ListIterator的特有功能add)
  • b:集合遍历元素,集合修改元素

案例代码

  1. package com.fenxiangbe.collection;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.ListIterator;
  5. public class Test5 {
  6. public static void main(String[] args) {
  7. List l = new ArrayList();
  8. l.add(“a”);
  9. l.add(“b”);
  10. l.add(“c”);
  11. l.add(“d”);
  12. ListIterator li = l.listIterator();
  13. while(li.hasNext()){
  14. String s = (String)li.next();
  15. if(“c”.equals(s)){
  16. li.add(“fenxingbe”);
  17. }
  18. }
  19. System.out.println(l);
  20. }
  21. }

5、常见的数据结构的特点

  • 数组:查询快,修改也快,但是增删慢
  • 链表:查询慢,修改慢,但是增删快

6、List集合的子类特点

  • arraylest:底层是数组结构,所以查询快,增删慢,线程不安全的,效率高
  • Vector: 底层数据结构是数组,查询快,增删慢。 线程安全,效率低。
  1. Vector相对ArrayList查询慢(线程安全的)
  2. Vector相对LinkedList增删慢(数组结构)
  • LinkedList: 底层数据结构是链表,查询慢,增删快。 线程不安全,效率高。

Vector和ArrayList的区别

  • 区别:Vector是线程安全的,效率低 ArrayList是线程不安全的,效率高
  • 共同点:都是数组实现的

ArrayList和LinkedList的区别

  • 区别:ArrayList底层是数组结果,查询和修改快 LinkedList底层是链表结构的,增和删比较快,查询和修改比较慢
  • 共同点:都是线程不安全的

List有三个子类,我们到底使用谁呢?

  •  查询多用ArrayList
  • 增删多用LinkedList
  • 如果都多ArrayList
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-10-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
java之学习集合的并发修改及案例
结果示意图 A:案例演示 * 需求:我有一个集合,请问,我想判断里面有没有”world”这个元素,如果有,我就添加一个”javaee”元素,请写代码实现。 B:ConcurrentModificationException出现 * 迭代器遍历,集合修改集合 C:解决方案 * a:迭代器迭代元素,迭代器修改元素(ListIterator的特有功能add) * b:集合遍历元素,集合修改元素 案例代码 package com.fenxiangbe.collection; import
吾爱乐享
2018/07/13
3990
JavaSE(八)集合之List
前面一篇的corejava讲的是集合的概述,这一篇我将详细的和大家讲解一下Collection下面的List、set、queue这三个子接口。希望大家能得到提升。 一、List接口 1.1、List接口概述   List类型集合特点:集合中的元素有序且可重复,有下标 。     注:有序指的是元素放到集合中的顺序和循环遍历出来的顺序一致   List接口常见的实现类有:ArrayList、LinkedList、Vector等     对于数据的随机访问,ArrayList效率优于LinkedList,因为L
用户1195962
2018/01/18
7240
JavaSE(八)集合之List
JAVA入门学习六
描述: 集合的由来数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义太麻烦,java内部给我们提供了集合类能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少;
全栈工程师修炼指南
2020/10/23
6130
JAVA入门学习六
java之学习集合迭代listiterator的用法及注意事项
结果示意图 了解正向遍历和逆向遍历的方法 *boolean hasNext()是否有下一个 * boolean hasPrevious()是否有前一个 * Object next()返回下一个元素
吾爱乐享
2018/07/13
1.1K0
第四阶段-Java集合框架:【第三章 List接口】
List在Collection中充当着一个什么样的身份呢?——有序的 collection(也称为序列)
BWH_Steven
2019/08/09
6410
Java集合(四) List的实现类
分类 ArrayList(重点) Vector LinkedList 1,ArrayList 数组结构实现,所有必须连续空间存储,查询快,增删慢。 JDK1.2之后加入,运行效率快,线程不安全 2,Vector 数组结构实现,所有必须连续空间存储,查询快,增删慢。 JDK1.2之后加入,运行效率慢,线程安全 (ArrayList和Vector最大的区别在于线程安不安全和运行效率) 3,LinkedList 双向链表结构实现,增删快,查询慢。 ArrayList List list = new ArrayLi
宇宙无敌暴龙战士之心悦大王
2022/01/10
3800
Java基础(02)-15总结对象数组,集合Collection,集合List
3:集合(List)(掌握) (1)List是Collection的子接口 特点:有序(存储顺序和取出顺序一致),可重复。 package cn.itcast_01; import java.util.Iterator; import java.util.List; import java.util.ArrayList; /* * 需求:List集合存储字符串并遍历。 */ public class ListDemo { public static void main(String[] args)
Java帮帮
2018/03/16
8730
Java基础(02)-15总结对象数组,集合Collection,集合List
java基础学习_集合类01_对象数组、集合Collection接口、集合List接口_day15总结
============================================================================= ============================================================================= 涉及到的知识点有: 1:对象数组的概述和案例(掌握)   (1)对象数组的概述   (2)对象数组的案例 2:集合(Collection接口)(掌握)   (1)集合的由来?   (2)集合和数组的区别?   (3)集合的继承体系结构   (4)Collection接口的概述   (5)Collection接口的成员方法(注意:默认方法前有public abstract修饰)   (6)Collection集合的遍历   (7)迭代器   (8)Collection集合的案例(遍历方式:迭代器方式)(要求:用记事本默写)     A:存储字符串并遍历     B:存储自定义对象并遍历 3:集合(List接口)(掌握)   (1)List是Collection的子接口   (2)List的特有功能(注意:默认方法前有public abstract修饰)   (3)List集合的特有遍历功能   (4)列表迭代器的特有功能(了解)   (5)ConcurrentModificationException 并发修改异常   (6)常见的数据结构以及其优缺点   (7)List的子类特点(面试题)   (8)List集合的案例(遍历方式 迭代器和普通for循环) ============================================================================= ============================================================================= 1:对象数组的概述和案例(掌握) (1)对象数组的概述     数组既可以存储基本数据类型,也可以存储引用类型。它存储引用类型的时候的数组就叫对象数组。 (2)对象数组的案例     我有5个学生,请把这个5个学生的信息存储到数组中,并遍历学生数组,获取得到每一个学生的信息。
黑泽君
2018/10/12
5990
Java中List集合
ArrayList底层是基于数组实现的,数组是一串连续的存储空间,所以ArrayList集合内部的元素必须是连续存储的,当要在中间删除或者插入一个元素,其后面的元素都需要进行一移动,因此ArrayList集合不适合删除和插入,而适合查找和遍历操作;
訾博ZiBo
2025/01/06
970
java之学习LinkedList的特有功能及案例分析
结果示意图 LinkedList类概述 LinkedList 和 ArrayList 一样,都实现了 List 接口,但其内部的数据结构有本质的不同。LinkedList 是基于链表实现的,所以它的插
吾爱乐享
2018/07/12
6260
Java基础笔记15
15.01_集合框架(对象数组的概述和使用) 案例演示 需求:我有5个学生,请把这个5个学生的信息存储到数组中,并遍历数组,获取得到每一个学生信息。 Student[] arr = new Student[5]; //存储学生对象 arr[0] = new Student("张三", 23); arr[1] = new Student("李四", 24); arr[2] = new Student("王五", 25); arr[3] = new Stud
dreamkong
2018/06/21
4100
List集合
java.util.List 接口继承自 Collection 接口,是单列集合的一个重要分支,习惯性地会将实现了 List 接口的对象称为List集合。在List集合中允许出现重复的元素,所有的元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。
星哥玩云
2022/09/14
8740
集合框架【第一章】——List-使用LinkedList完成一个堆栈MyStack(为例)
1. Collection接口   1.1 集合框架的顶级接口   1.2 是Set和List的父接口   1.3 但不是Map的父接口 (如图所示)
用户10196776
2022/11/22
2390
集合框架【第一章】——List-使用LinkedList完成一个堆栈MyStack(为例)
Java学习笔记之集合1
本文涉及Java知识点为集合,包括Collection集合,List集合,数组和队列结构,List集合的实现类
Jetpropelledsnake21
2021/12/10
3530
Java学习笔记之集合1
List集合
List集合是单列集合的一种,它所存储的元素是可以重复的。List是直接实现Collection接口类的一种。完整的lIst接口类定义如下。
兰舟千帆
2022/07/16
1.7K0
List集合
List集合
  Collection接口没有提供直接的实现类,而是提供了更加具体的子接口的实现类,其中一个最常用的子接口就是List接口。List集合中的元素是有序、可重复的。
别团等shy哥发育
2023/02/25
6920
List集合
java集合,Collection,list,set,map汇总
Java是一门面向对象的语言,就免不了处理对象,为了方便操作多个对象,那么我们就得把这多个对象存储起来,想要存储多个对象(变量),很容易就能想到一个容器(集合)来装载
用户8870853
2021/07/27
3910
java集合【12】——— ArrayList,LinkedList,Vector的相同点与区别是什么?
要想回答这个问题,可以先把各种都讲特性,然后再从底层存储结构,线程安全,默认大小,扩容机制,迭代器,增删改查效率这几个方向入手。
秦怀杂货店
2021/03/26
4800
Java常用集合List、Map、Set介绍以及一些面试问题
对于基本数据类型,集合使用自动装箱减少代码量,但是如果处理固定大小的基本数据类型时,相对比较慢。
Java技术债务
2022/08/09
1.6K0
Java常用集合List、Map、Set介绍以及一些面试问题
java集合【7】-- List接口源码解析
java.util.List 接口继承于 Collection 接口,与Map最大的不同之处,在于它属于单列集合,相当于一个列表,有以下这些特点:
秦怀杂货店
2020/11/21
6610
java集合【7】-- List接口源码解析
推荐阅读
相关推荐
java之学习集合的并发修改及案例
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档