今天我们来学习J2EE的第一次课,我们将逐步带大家进入

UML:统一建模语言

我们先从这个图来逐步理解

这些圆形代表的就是接口:conllection、list、set......

这些矩形代表的就是类:vector、arrayList、Linkedlist.....

这些空心三角形就表示继承关系,虚线箭头表示依赖关系

由于需要详细了解的比较多,今天我们就先来了解左边的也就是下图:

今天我们了解集合框架中的List

我们知道List集合有以下特点:有序、元素可以重复

我们通过实例来证明

1.特点

我们看以下代码

我们把它输出出来可以看到

和我们打印的顺序是一致的,这证明了List集合的特点有序

我们在看下面代码

我们通过分割线把他们隔开,再次打印可以看到

打印结果出现了元素重复,这证明了List集合的特点 :元素可以重复,而set集合刚好全部与list集合相反(即打印无序、元素不可重复)

另外我们由第一张图可以看出我们的Map集合与Conllection集合没有任何关系,

之前经常听过一个面试题:面试官问你Map集合是不是继承Collection,经常有同学说是的,所以大家要注意咯;

集合中只能添加引用类型数据?

这个大家肯定多多少少有些人还是有些疑问的,以下代码

list.add(1);

说上述代码不是int(基本数据类型)吗?

其实在集合中它就属于引用数据类型Integer了。

说到这里我们又来聊一聊基本数据类型有哪些:

 2.遍历方式

List集合有哪些遍历方式呢?

2.1:下标遍历(for循环)

2.2:foreach

2.3:迭代器

我们先来对比三个遍历方式所用到的代码

2.1

2.2

注:需在jdk1.5后才有

2.3

输出结果都一致

迭代器运行原理

在 迭代器的遍历过程中先通过hastNext()方法判断是否有下一个元素,如果存在下一个元素再调用next()方法获取元素,在这里next()方法先往后移动一个元素位置,再返回该位置的元素。因此,在调用next()方法之前必须要调用hastNext()方法进行检测;如果没有调用并且没有下一个元素,直接调用next()方法会抛出 NoSuchElementException异常;

3.list独有的迭代器

代码:

我们要想让迭代器遍历反着来可以使用上述代码:

打印结果:

可以看到一个是按顺序来遍历的、一个是完全反着来的

 4.List元素的删除

我们先用大家都知道的remove来进行删除:

我们通过打印下标来看看是否完全删除:

打印 结果:

可以看到我们用remove并未删除干净

那我们为什么没有删除干净呢?

原因是:
List每次remove掉一个元素以后,后面的元素的一个索引都会向前移动,此时,执行i++,刚刚移过来的元素刚好被跳过,没有被读取

那我们该怎么才能删除干净呢?

我们可以使用以下方法:

4.1:for循环倒序删除:

执行结果:

我们可以看到删除成功了,长度从之前的4变成0;

4.2:迭代器删除

有结果来说也是可行的;

5.list集合的优化

初始容量为10,负载因子为0.5

优化方式:指定初始容量

泛型:

给一个集合指定数据类型就是泛型,不指定就是默认object类型;

6. ArrayList、LinkedList、Vector区别
   ArrayList:以连续的数组结构存储数据,查询块(下标)、增删改慢
   LinkedList:以链表的结构存储数据,查询慢、增删改快
   Vector:增删改查都慢,已过时,同步.线程安全

J2EE(集合框架)相关推荐

  1. J2EE集合框架02

    1. Set   1.1 特点: 1.2 遍历 无序 1.2.1 foreach循环遍历 代码如下: Set set = new HashSet();set.add("aa");s ...

  2. J2EE基础集合框架之Set

    今天将进行介绍的是J2EE基础集合框架之Set,其主要分为四个点 目录 1,set集合特点&遍历集合 2,set集合去重原理 3,set集自然排序接口 4,set集合比较器排序 1,set集合 ...

  3. J2EE基础之map集合框架

    目录 一.map集合框架特点 二.遍历方式 三.常用实现类HashMap 四.泛型 五.集合框架工具类( Collections和 Arrays ) 等等先别急,先了解一下什么是Map集合? Map是 ...

  4. J2EE基础:集合框架—List

    文章目录 本节总结知识网思维导图 一.特点 二.遍历 1.fori 2.foreach 3.iter ator(迭代器) 三.LinkedList 四.增长 因子论证 五.集合框架ArrayList中 ...

  5. Java集合框架总结(5)——Map接口的使用

    Java集合框架总结(5)--Map接口的使用 Map用于保存具有映射关系的数据(key-vlaue).Map的key不允许重复,即同一个Map对象的任何两个key通过equals方法比较总是返回fa ...

  6. java集合框架类_Java集合框架总结—超详细-适合面试

    Set和List接口是Collection接口派生的两个子接口,Queue是Java提供的队列实现,类似于List. Map实现类用于保存具有映射关系的数据(key-value). 2.Set.Lis ...

  7. java基础知识总结:基础知识、面向对象、集合框架、多线程、jdk1.5新特性、IO流、网络编程

    目录 一.基础知识: 二.面向对象 三.集合框架 四.多线程: 五.jdk1.5的新特性 六.IO流 七.网络编程: 一.基础知识: 1.JVM.JRE和JDK的区别: JVM(Java Virtua ...

  8. Java基础知识第二讲:Java开发手册/JVM/集合框架/异常体系/Java反射/语法知识/Java IO

    Java基础知识第二讲(Java编程规范/JVM/集合框架/异常体系/Java反射/语法知识/Java IO/码出高效) 分享在java学习及工作中,常使用的一些基础知识,本文从JVM出发,讲解了JV ...

  9. J2EE_01快速入门 集合框架

    目录 一.UML(统一建模语言)集合框架类图 ​编辑 二.Java集合框架概述 三.List集合使用 四.Set集合的使用 五.Map集合详解 ①HashMap集合: ②TreeMap集合: 一.UM ...

  10. java集合框架(上)

    Collection接口 List接口 LinkedList类 ArrayList类 Vector类 Stack 类 集合框架是为表示和操作集合而规定的一种统一的标准的体系结构.任何集合框架都包含三大 ...

最新文章

  1. Softer-NMS:CMU旷视最新论文提出定位更加精确的目标检测算法
  2. DetachedCriteria 分页Projection取消聚合条件
  3. Hive之数据倾斜的原因和解决方法
  4. html5创建对象的方法,JavaScript面向对象-使用工厂方法和构造函数方法创建对象...
  5. PowerShell命令测试--whatif参数
  6. FCLK、HCLK、PCLK
  7. WebGraph++编译
  8. 解决margin-top塌陷问题的六种方法
  9. iOS获取iPhone系统等信息和服务器返回空的异常处理
  10. UNIX环境高级编程之第8章:进程控制-习题
  11. [010]Try块和异常处理
  12. STL-vector容器
  13. nba球队查询系统c语言代码,NBA球队中英文对照一览表
  14. 从Java新特性看Java的未来
  15. 淘宝爆款单品月纯利100万运营实战
  16. 水花兄弟又凑齐了(20220111 Week2-1)
  17. hdu-6130-Kolakoski
  18. CLion - 卸载
  19. 转转后台 最新转转源码
  20. Python中的下划线到底什么意思?

热门文章

  1. mysql脚本 ip数据库_纯真IP数据库镜像及sql脚本同步更新
  2. 图像坐标系与世界坐标系的变
  3. 《MBA一日读2.0 读书笔记》
  4. 福昕pdf套件注册码激活
  5. 人脸关键点数据集整理
  6. EditPlus中文版 安装教程
  7. 宾得k5ii_K5--K5II---K5IIs,该选哪个?(喜欢宾得机的摄友)各抒己见。
  8. 360浏览器不弹出java窗口_360浏览器不弹出新窗口怎么办
  9. javascript 分割字符串
  10. PHP生成二维码与识别二维码