Java集合一
java的集合类主要由两个接口派生而出:Collection && Map 这两个接口是集合框架的根接口
Collection----直接派生:Set(无序集合,元素不可重复) List(有序集合,元素可以重复) Queue队列
Map实现类用于保存具有映射关系的数据(每项数据都是key-value对)key用于标识集合里的每项数据
可以把java集合分为3大类:Set集合类似于一个罐子,把对象添加到Set集合时,Set集合无法记住元素添加的顺序
List类似数组,长度可变,可以元素重复,有序集合
Map也类似罐子,只是每个数据都是由key-value组成
Collection接口提供的方法:
boolean add(Object o):向集合里添加一个元素
boolean addAll(Collection c):将集合c里的元素添加的指定集合中
void clear():清除集合里所有的元素,将集合长度变为0
.。。。。。参考Api文档
使用Lambda表达式遍历集合
Iterable接口新增了forEach(Consumer action)默认方法,这个接口是Collection接口的父接口,Collection集合可以直接调用该方法(主要用于遍历,即迭代访问)
通过iterator()来获得集合对应迭代器
提供的方法:boolean hasNext():如果集合元素没遍历完则返回true
Object next():返回集合里的下一个元素
void remove():删除集合里上一次next()元素返回的元素
void forEachRemaining(Consumer action) lambda遍历集合
当使用迭代器访问集合元素时Collection集合的元素不能被改变,否则会出问题
迭代元素的值对集合本身没有任何影响
使用Lambda表达是遍历Iterator:就是用forEachRemaining(Consumer action)
使用foreach循环遍历集合元素
Java8新增一个removeIf(Predicate filter), 该方法批量删除符合Filter元素的,Predicate(谓词)对象作为参数,也是函数式接口,可用Lambda表达式作为参数
Predicate的test()方法判断该对象是否满足Predicate指定的条件(统计指定条件的数量有多少)
Java8新增Stream操作集合:调用builder()方法然后调用add() 再调用build()获得对应Stream()
流的方法有中间方法,和末端方法,末端方法执行后就关闭流,不可再用
Collection集合的stream()方法可返回该集合的Stream,接下来就是痛过Stream操作集合
Set集合:没有顺序,不允许包含同样的元素
HashSet:不是同步的,多个线程访问时要用代码保证同步
集合值可以为null
按hash算法来存储集合中的元素
尽量保证对象equals()方法返回true时,hashCode()的方法返回值也相等
两个以上元素具有相同的hashCode()值时会导致性能下降
hashCode()的基本规则:通过对象内部有意义的实例变量的一系列运算获得
LinkedHashSet:为HashSet的子类,性能略低于hashset,有顺序,以链表来维护内部顺序
TreeSet:是SortSet接口的实现类,可以确保集合处于排序状态
Java集合一的更多相关文章
- JAVA集合一:ArrayList和LinkedList
JAVA集合一:ArrayList和LinkedList 参考链接: HOW2J.CN 前言 这几篇博客重点记录JAVA的几个重要的集合框架:ArrayList.LinkedList.HashMap. ...
- java集群
java集群 分类: java学习2011-05-12 09:12 7531人阅读 评论(9) 收藏 举报 java服务器负载均衡ejb集群数据库 序言 越来越多的关键应用运行在J2EE(Java 2 ...
- 【J2EE之web应用】java集群概念
在学习web应用进行部署的时候,遇到一个名词java集群,(事实上遇到非常多名词╭(╯^╰)╮~~~).不懂意思就查一查! 在这里做个笔记! 没有什么高深见解,就搞明确几个概念,java集群的特点 . ...
- Java(26)集合一Collection
来源:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15228419.html 博客主页:https://www.cnblogs.com/testero ...
- java集群技术(转)
来源:http://blog.csdn.net/cdh1213/article/details/21443239 序言 越来越多的关键应用运行在J2EE(Java2, Enterprise Editi ...
- Java集群优化——dubbo+zookeeper构建高可用分布式集群
不久前,我们讨论过Nginx+tomcat组成的集群,这已经是非常灵活的集群技术,但是当我们的系统遇到更大的瓶颈,全部应用的单点服务器已经不能满足我们的需求,这时,我们要考虑另外一种,我们熟悉的内容, ...
- 2015第44周五Java集群技术(转)
从http://blog.csdn.net/cdh1213/article/details/21443239上看到这篇文章,感觉很不错,找好久没找到中文出处,最早看是从http://www.these ...
- 深入了解java集群技术
原文源自:http://blog.csdn.net/happyangelling/article/details/6413584 序言 越来越多的关键应用运行在J2EE(Java 2, Enterpr ...
- Java集群--大型网站是怎样解决多用户高并发访问的
时间过得真快,再次登录博客园来写博,才发现距离上次的写博时间已经过去了一个月了,虽然是因为自己找了实习,但这也说明自己对时间的掌控能力还是没那么的强,哈哈,看来还需不断的努力啊!(这里得特别说明一下本 ...
随机推荐
- git配置本地环境(phpstudy/tortoisegit/git等)
1.下载安装phpstudy 2.下载安装git 下载地址:https://git-scm.com/downloads 3.下载安装tortoisegit,电脑64位就下载这个,如图: 4.下载安装“ ...
- Eclipse内存不足 增加eclipse的运行内存
自己解决的 三. 修改Run Configurations (此方法可行) 在代码上右键,依次点击“Run As ”-> “Run Configurations ”,在Arguments ...
- C# Winform中自定义筛选及自带统计行的Datagridview控件
网上分享有很多种自制DGV控件,都有不小的缺陷. 没办法,按需求自己定制了一个. 一.过滤方面类似于Excel的筛选功能.支持右键菜单筛选,同时也支持在文本框输入文字按焦点列进行筛选: 二.统计行我采 ...
- loj#6436. 「PKUSC2018」神仙的游戏(NTT)
题面 传送门 题解 一旦字符串踏上了通配符的不归路,它就永远脱离了温暖的字符串大家庭的怀抱 用人话说就是和通配符扯上关系的字符串就不是个正常的字符串了比如说这个 让我们仔细想想,如果一个长度为\(le ...
- Date时间格式的转换以及一些用法
import java.util.Date; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.u ...
- 你必须知道的----C语言笔试面试中经典易错的一些知识点(持续更新)
1. 关于二级指针的解析和引用 1.1 二级指针意义 二级指针存放的是一级指针的地址 Ex: Int a = ; Int *p = &a; Int **q = &p; 1.2 ...
- STM32基础分析——PWM配置
在使用STM32F103产生固定频率.固定占空比的PWM波时,虽然有官方以及众多开发板提供的例程,但是关于有点问题并没有说的很清晰,并且<STM32F10X参考手册>的中文翻译可能容易造成 ...
- Domoticz 中添加彩云天气
前言 用过一段时间的彩云天气 APP,最吸引我的地方是精确到局部区域的天气预测,虽然准确度并不算高,但是对于预测下雨还是不错的选择.在 Domoticz 中添加彩云天气的数据,利用的是彩云天气提供的 ...
- Android 滚动视图(ScollView)
1.介绍 2.使用技巧 3.xml文件代码 <?xml version="1.0" encoding="utf-8"?> <LinearLay ...
- [原创]c# 类中 Collection 字段初始化的特殊之处
1.今天看一下StackExchange.Redis的源代码,里面有这样一段代码 public sealed class ConfigurationOptions : ICloneable { ... ...