集合框架

先来上一个图

在这里插入图片描述
【图片来源自网络】
从这个图片我们可以大致了解到java集合框架的顺序关系和每个集合的大致作用。挺不错的,我随便从网上找的。接下来从上到下,从左到右来学习一下。当然,是直接学习官网API。

1.Iterator

  1. 首先看一下Iterator接口的位置
    在这里插入图片描述

  2. 方法
    在这里插入图片描述
    它只有这四个方法。看起来很好理解,最主要的就是hasNext(判断集合下一个位置是否还有元素)和next(获取下一个位置的元素)。

2.Collection

  1. 位置
    在这里插入图片描述

  2. 一点点说明
    E是指集合中的元素的类型的统称,就像人一样,人是统称,每个人的名字是具体的称呼。
    它是集合框架的根接口。

  3. 方法
    在这里插入图片描述
    Collection接口定义了一般集合所必须的操作方法。

3.Set

  1. 位置
    在这里插入图片描述
  2. Set定义了不包含重复元素的集合和这些集合的一些操作
  3. 方法
    在这里插入图片描述
    在这里插入图片描述

4.HashSet

在这里插入图片描述
它实现了Set接口,由一个哈希表支持。
遍历的时候不保证每次遍历顺序都一样。
允许空元素存在。

1.来看一下类名
在这里插入图片描述

  1. 一些解释
    这个类提供了固定时间对于add,remove,contains,size这些方法的执行。
    遍历时间和HashSet对象的大小成正比
    HashSet是非线程安全的。为了阻止非同步的访问可以这样做:
    Set s = Collections.synchronizedSet(new HashSet(…));

  2. 构造方法
    在这里插入图片描述
    这里除了那个负载因子都好理解,这里单独解释一下那个负载因子的作用和来历。
    作用:表示当HashSet的容量达到HashSet的大小的多少的时候HashSet自动扩容。例如如果loadfactor=0.5,HashSet=16,当容量为8的时候HashSet自动加倍扩容。
    来历待续。。

5.LinkedHashSet

  1. 位置
    在这里插入图片描述
    由继承树可以看到,LinkedHashSet是在HashSet的基础上进一步扩展功能。
  2. Set接口的哈希表和链表的实现,可以保证遍历的元素顺序,以元素被加入Set时的顺序遍历。
  3. 此集合不允许元素重复,且是非线程安全的
  4. 构造函数
    在这里插入图片描述
  5. 方法的话和HashSet基本上是一样的

6.List

  1. 介绍
    在这里插入图片描述

  2. 一些特性
    元素是有序的
    可以精确控制元素被存放到哪个位置
    允许重复元素
    也可以存放空元素

  3. 方法
    在这里插入图片描述
    这些方法和Set集合里面的差不多,都是一些基本操作,多多练习便能掌握

7.ArrayList

  1. 位置
    在这里插入图片描述
    在这里插入图片描述
    继承的一般是类,实现的是接口。

  2. 一些特性
    大小可变
    可以存放任何元素
    非线程安全
    和Vector类似
    一些方法可以运行在固定的时间下

  3. 构造函数
    在这里插入图片描述

  4. 方法
    它实现了List接口的所有方法,都可以用

8.LinkedList

位置:
在这里插入图片描述
在这里插入图片描述
一些特性:
1,它是实现了ListQueue接口的双向链表
2,索引到列表中的操作将从头或尾遍历列表,以更接近指定索引的操作为准。
3,它是非线程安全的
构造函数:
在这里插入图片描述
方法:
在这里插入图片描述
这个方法和上面那几个集合差不多

9.ListIterator

介绍:
在这里插入图片描述
位置:
在这里插入图片描述
方法:
在这里插入图片描述
画红线的均是扩展的方法,针对于List的。

10.Map

介绍:
在这里插入图片描述
它是一个接口。
在这里插入图片描述
位置:
在这里插入图片描述
一些特性:
它是将键映射到值的对象。
不可以包含相同的键,每个键只能对应一个值。
它提供了键的集合,值的集合,键值对的集合三个视图。
有的子类如TreeMap可以保证元素的顺序,但是HashMap便不可以。

内部类:
也是一个接口。
在这里插入图片描述
方法:
这个接口定义了Map家族的基本操作。

11.HashMap

位置:
在这里插入图片描述
类名:
从类名可以获得好多信息的。
在这里插入图片描述
一些特性:
它是基于Map的实现。
实现了所有Map接口的方法。
允许空值和空键。
大致等于HashTable。
非线程安全的。
不保证元素的每次迭代次序。
构造方法:
在这里插入图片描述
负载因子前面已经说过。
方法:
平时常用的也就几个方法,熟练练习即可。

12.LinkedHashMap

位置:

在这里插入图片描述
类名:
在这里插入图片描述
一些新特性:
可以保证元素迭代顺序(按照元素被添加的顺序遍历)。
构造函数:
在这里插入图片描述
这里多了一个有意思的构造函数,可以指定访问顺序。true为存储顺序,false为插入的先后顺序。
方法:
在这里插入图片描述
这是一些新的方法,其他的方法都是在类名中出现的类和接口的方法。

13.TreeMap

位置:
在这里插入图片描述
类名:
在这里插入图片描述
一些新特性:
它是基于NavigableMap的红黑树的实现。
被以键的自然的顺序排列。
对于containsKey,get,put,remove,实现了log(n)的时间复杂度。
它是非线程安全的。
构造函数:
在这里插入图片描述
方法:
这里的方法得好好练习,具体看这里


foreach遍历:

public static void main(String[] args) {
		TreeMap<Integer, Integer> tm=new TreeMap<Integer, Integer>();
		for(int i=0;i<100;i++)
		{
			tm.put(i, i);
			System.out.println(tm.size());
		}
		System.out.println(tm.firstKey());
		System.out.println(tm.higherKey(50));
		tm.forEach((k,v)->{
			System.out.println(k);
		});

for 用for循环遍历
iterator 迭代器遍历
for: 用增强型for循环

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
系统根据B/S,即所谓的电脑浏览器/网络服务器方式,运用Java技术性,挑选MySQL作为后台系统。系统主要包含对客服聊天管理、字典表管理、公告信息管理、金融工具管理、金融工具收藏管理、金融工具银行卡管理、借款管理、理财产品管理、理财产品收藏管理、理财产品银行卡管理、理财银行卡信息管理、银行卡管理、存款管理、银行卡记录管理、取款管理、转账管理、用户管理、员工管理等功能模块。 文中重点介绍了银行管理的专业技术发展背景和发展状况,随后遵照软件传统式研发流程,最先挑选适用思维和语言软件开发平台,依据需求分析报告模块和设计数据库结构,再根据系统功能模块的设计制作系统功能模块图、流程表和E-R图。随后设计架构以及编写代码,并实现系统能模块。最终基本完成系统检测和功能测试。结果显示,该系统能够实现所需要的作用,工作状态没有明显缺陷。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。进入银行卡列表,管理员可以进行查看列表、模糊搜索以及相关维护等操作。用户进入系统可以查看公告和模糊搜索公告信息、也可以进行公告维护操作。理财产品管理页面,管理员可以进行查看列表、模糊搜索以及相关维护等操作。产品类型管理页面,此页面提供给管理员的功能有:新增产品类型,修改产品类型,删除产品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值