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

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

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

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 删除。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、List集合的特有功能
  • 2、List集合存储字符串并遍历(迭代器和普通for)
  • 3、List集合存储自定义对象并遍历(迭代器和普通for)
  • 4、并发修改异常出现的原因?解决方案?
  • 5、常见的数据结构的特点
  • 6、List集合的子类特点
  • Vector和ArrayList的区别
  • ArrayList和LinkedList的区别
  • List有三个子类,我们到底使用谁呢?
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档