J2EE(集合框架)
今天我们来学习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(集合框架)相关推荐
- J2EE集合框架02
1. Set 1.1 特点: 1.2 遍历 无序 1.2.1 foreach循环遍历 代码如下: Set set = new HashSet();set.add("aa");s ...
- J2EE基础集合框架之Set
今天将进行介绍的是J2EE基础集合框架之Set,其主要分为四个点 目录 1,set集合特点&遍历集合 2,set集合去重原理 3,set集自然排序接口 4,set集合比较器排序 1,set集合 ...
- J2EE基础之map集合框架
目录 一.map集合框架特点 二.遍历方式 三.常用实现类HashMap 四.泛型 五.集合框架工具类( Collections和 Arrays ) 等等先别急,先了解一下什么是Map集合? Map是 ...
- J2EE基础:集合框架—List
文章目录 本节总结知识网思维导图 一.特点 二.遍历 1.fori 2.foreach 3.iter ator(迭代器) 三.LinkedList 四.增长 因子论证 五.集合框架ArrayList中 ...
- Java集合框架总结(5)——Map接口的使用
Java集合框架总结(5)--Map接口的使用 Map用于保存具有映射关系的数据(key-vlaue).Map的key不允许重复,即同一个Map对象的任何两个key通过equals方法比较总是返回fa ...
- java集合框架类_Java集合框架总结—超详细-适合面试
Set和List接口是Collection接口派生的两个子接口,Queue是Java提供的队列实现,类似于List. Map实现类用于保存具有映射关系的数据(key-value). 2.Set.Lis ...
- java基础知识总结:基础知识、面向对象、集合框架、多线程、jdk1.5新特性、IO流、网络编程
目录 一.基础知识: 二.面向对象 三.集合框架 四.多线程: 五.jdk1.5的新特性 六.IO流 七.网络编程: 一.基础知识: 1.JVM.JRE和JDK的区别: JVM(Java Virtua ...
- Java基础知识第二讲:Java开发手册/JVM/集合框架/异常体系/Java反射/语法知识/Java IO
Java基础知识第二讲(Java编程规范/JVM/集合框架/异常体系/Java反射/语法知识/Java IO/码出高效) 分享在java学习及工作中,常使用的一些基础知识,本文从JVM出发,讲解了JV ...
- J2EE_01快速入门 集合框架
目录 一.UML(统一建模语言)集合框架类图 编辑 二.Java集合框架概述 三.List集合使用 四.Set集合的使用 五.Map集合详解 ①HashMap集合: ②TreeMap集合: 一.UM ...
- java集合框架(上)
Collection接口 List接口 LinkedList类 ArrayList类 Vector类 Stack 类 集合框架是为表示和操作集合而规定的一种统一的标准的体系结构.任何集合框架都包含三大 ...
最新文章
- Softer-NMS:CMU旷视最新论文提出定位更加精确的目标检测算法
- DetachedCriteria 分页Projection取消聚合条件
- Hive之数据倾斜的原因和解决方法
- html5创建对象的方法,JavaScript面向对象-使用工厂方法和构造函数方法创建对象...
- PowerShell命令测试--whatif参数
- FCLK、HCLK、PCLK
- WebGraph++编译
- 解决margin-top塌陷问题的六种方法
- iOS获取iPhone系统等信息和服务器返回空的异常处理
- UNIX环境高级编程之第8章:进程控制-习题
- [010]Try块和异常处理
- STL-vector容器
- nba球队查询系统c语言代码,NBA球队中英文对照一览表
- 从Java新特性看Java的未来
- 淘宝爆款单品月纯利100万运营实战
- 水花兄弟又凑齐了(20220111 Week2-1)
- hdu-6130-Kolakoski
- CLion - 卸载
- 转转后台 最新转转源码
- Python中的下划线到底什么意思?