1.Collection集合

1.1 集合体系结构

集合

  (接口)Collection:单列

    (接口)List:可重复

      (实现类)ArrayList

      (实现类)LinkedList

    (接口)Set:不可重复

      (实现类)HashSet

      (实现类)TreeSet

  (接口)Map:双列

      (实现类)HashMap

1.2 Collection集合概述和基本使用

Collection集合概述

  是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素

  JDK 不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现

1.3 Collection集合的常用方法

方法名 说明
boolean add(E e) 添加元素
boolean remove(Object o) 从集合中移除指定的元素
void clear() 清空集合中的元素
boolean contains(Object o) 判断集合中是否存在指定的元素
boolean isEmpty() 判断集合是否为空
int size() 集合的长度,也就是集合中元素的个数

1.4 Collection集合的遍历

迭代器的介绍

  迭代器,集合的专用遍历方式

  Iterator iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到

  迭代器是通过集合的iterator()方法得到的,所以我们说它是依赖于集合而存在的

Collection集合的遍历

 1 import java.util.ArrayList;
2 import java.util.Collection;
3 import java.util.Iterator;
4
5 public class iCollection {
6 public static void main(String[] args) {
7 Collection<String> cl = new ArrayList<>();
8
9 cl.add("1");
10 cl.add("2");
11 cl.add("3");
12 cl.add("4");
13
14 Iterator<String> it = cl.iterator();
15 while(it.hasNext()){
16 String s = it.next();
17 System.out.println(s);
18 }
19 }
20 }

2.List集合

2.1 List集合概述和特点

List集合概述

  有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引访问元 素,并搜索列表中的元素

  与Set集合不同,列表通常允许重复的元素

List集合特点

  有索引

  可以存储重复元素

  元素存取有序

2.2 List集合的特有方法

方法名 说明
void add(int index,E element) 在此集合中的指定位置插入指定的元素
E remove(int index) 删除指定索引处的元素,返回被删除的元素
E set(int index,E element) 修改指定索引处的元素,返回被修改的元素
E get(int index) 返回指定索引处的元素

2.3 并发修改异常

出现的原因

  迭代器遍历的过程中,通过集合对象修改了集合中的元素,造成了迭代器获取元素中判断预期修改值和实际修改值不一致,则会出现:ConcurrentModificationException

解决的方案

  用for循环遍历,然后用集合对象做对应的操作即可

2.4 列表迭代器

ListIterator介绍

  通过List集合的listIterator()方法得到,所以说它是List集合特有的迭代器

  用于允许程序员沿任一方向遍历的列表迭代器,在迭代期间修改列表,并获取列表中迭代器的当前位置

2.5 增强for循环

1 for(元素数据类型 变量名 : 数组/集合对象名) {
2   循环体;
3 }

本质上还是一个迭代器

3.常用数据结构

3.1 数据结构之栈和队列

栈结构

  先进后出

队列结构

  先进先出

3.2 数据结构之数组和链表

数组结构

  查询快、增删慢

队列结构

  查询慢、增删快

3.3 List集合子类的特点

ArrayList集合

  底层是数组结构实现,查询快、增删慢

LinkedList集合

  底层是链表结构实现,查询慢、增删快

3.4 LinkedList集合的特有功能

方法名 说明
public void addFirst(E e) 在该列表开头插入指定的元素
public void addLast(E e) 将指定的元素追加到此列表的末尾
public E getFirst() 返回此列表中的第一个元素
public E getLast() 返回此列表中的最后一个元素
public E removeFirst() 从此列表中删除并返回第一个元素
public E removeLast() 从此列表中删除并返回最后一个元素

最新文章

  1. ASP.NET MVC 视图(四)
  2. SparkStreaming实现Exactly-Once语义
  3. HTML5--页面自动居中
  4. Safari浏览器中对js Date对象的支持
  5. 1001. 害死人不偿命的(3n+1)猜想 (15)
  6. AngularJS四大特性
  7. 【Android 我的博客APP】1.抓取博客首页文章列表内容——网页数据抓取
  8. font-family属性与字体对齐
  9. 农村的“无为教育” (FW)
  10. eclipse删除已经记录的用户名和密码
  11. easyui 页签
  12. HDOJ2023求平均成绩
  13. 手机自动化测试:appium源码分析之bootstrap十七
  14. [ZJOI2011]看电影(MOVIE)
  15. prometheus的agent 二次开发代码参考
  16. Real Time Render 4
  17. hibernate和struts实现分页
  18. RewriteCond和13个mod_rewrite应用举例Apache伪静态
  19. HDU 1176 排列2 全排列
  20. 使用CDN的网络访问过程

热门文章

  1. CTF练习(1)这是一张单纯的图片?
  2. RSA(攻防世界)Rsa256 -- cr4-poor-rsa
  3. iOS中跑马灯效果小结
  4. MySQL 当前时间,今日时间,前日时间 详解
  5. SkyWalking —— 分布式应用监控与链路追踪
  6. 在腾讯云容器服务 TKE 中利用 HPA 实现业务的弹性伸缩
  7. 真香!Python开发工程师都选择这个数据库:因为它免费
  8. 跳表(SkipList)原理篇
  9. 20190703_创建 unity 的配置节处理程序时出错: The type name or alias Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionConfigurationExtension
  10. Fiddler 4 断点调试(修改response请求参数)