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集合一的更多相关文章

  1. JAVA集合一:ArrayList和LinkedList

    JAVA集合一:ArrayList和LinkedList 参考链接: HOW2J.CN 前言 这几篇博客重点记录JAVA的几个重要的集合框架:ArrayList.LinkedList.HashMap. ...

  2. java集群

    java集群 分类: java学习2011-05-12 09:12 7531人阅读 评论(9) 收藏 举报 java服务器负载均衡ejb集群数据库 序言 越来越多的关键应用运行在J2EE(Java 2 ...

  3. 【J2EE之web应用】java集群概念

    在学习web应用进行部署的时候,遇到一个名词java集群,(事实上遇到非常多名词╭(╯^╰)╮~~~).不懂意思就查一查! 在这里做个笔记! 没有什么高深见解,就搞明确几个概念,java集群的特点 . ...

  4. Java(26)集合一Collection

    来源:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15228419.html 博客主页:https://www.cnblogs.com/testero ...

  5. java集群技术(转)

    来源:http://blog.csdn.net/cdh1213/article/details/21443239 序言 越来越多的关键应用运行在J2EE(Java2, Enterprise Editi ...

  6. Java集群优化——dubbo+zookeeper构建高可用分布式集群

    不久前,我们讨论过Nginx+tomcat组成的集群,这已经是非常灵活的集群技术,但是当我们的系统遇到更大的瓶颈,全部应用的单点服务器已经不能满足我们的需求,这时,我们要考虑另外一种,我们熟悉的内容, ...

  7. 2015第44周五Java集群技术(转)

    从http://blog.csdn.net/cdh1213/article/details/21443239上看到这篇文章,感觉很不错,找好久没找到中文出处,最早看是从http://www.these ...

  8. 深入了解java集群技术

    原文源自:http://blog.csdn.net/happyangelling/article/details/6413584 序言 越来越多的关键应用运行在J2EE(Java 2, Enterpr ...

  9. Java集群--大型网站是怎样解决多用户高并发访问的

    时间过得真快,再次登录博客园来写博,才发现距离上次的写博时间已经过去了一个月了,虽然是因为自己找了实习,但这也说明自己对时间的掌控能力还是没那么的强,哈哈,看来还需不断的努力啊!(这里得特别说明一下本 ...

随机推荐

  1. 汇编工具安装一:MASM32的安装!

    MASM32是一款汇编开发工具,网址:http://www.masm32.com/ ,它是集合了很多开发汇编程序的工具,windows下汇编程序的开发,很多人都在使用它. 直接下载:http://we ...

  2. storm集群快速搭建

    sudo mkdir /export/serverssudo chmod -R 777 /exportmkdir /export/servers tar -zxvf apache-storm-1.0. ...

  3. java基础_01

    一.java中的数据类型 1.基本数据类型:四类八种 byte(1),boolean(1),short(2),char(2),int(4),float(4),long(8),double(8); 2. ...

  4. EasyUI学习笔记(四)—— datagrid的使用

    一.传统的HTML表格 之前我们做表格的时候是这样写的: <table > <thead> <tr> <th>编号</th> <th& ...

  5. python学习之路---day20--面向对象--多继承和super() 函数

    一:python多继承 python多继承中,当一个类继承了多个父类时候,这个类拥有多个父类的所欲非私有的属性 l例子: class A: pass class B(A): pass class C( ...

  6. cmd命令窗口相关操作指南

    cmd命令窗口打开方式:win+R cmd 1.盘符切换 d: 回车 (d为磁盘名) 2.查看当前目录下的文件和文件夹 输入dir 3.进入指定目录(若需跨盘符操作,应先切换盘符) cd(空格)+绝对 ...

  7. POJ 2182 Lost Cows (求序列第k大)

    题解 二分+树状数组 显然最和一个数的值就是rank 那么其它数有什么规律? 从后往前匹配rank,我们可以发现第i个数的rank为还没有匹配的rank第(a[i]+1)大的数 这可以用 树状数组+二 ...

  8. 简单探究一下window下的wifi各种东西

    保存地方在哪里 C:\ProgramData\Microsoft\Wlansvc\Profiles\Interfaces HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\W ...

  9. Codeforces - 38G 可持久化Treap 区间操作

    题意:\(n\)个人排队,每个人有重要度\(p\)和不要脸度\(c\),如果第\(i\)个人的重要度大于第\(i-1\)个人的重要度,那么他们之间可以交换,不要脸度-1,交换后先前的第\(i\)个人也 ...

  10. JS禁用浏览器退格键实现思路及代码

    [From] http://www.jb51.net/article/42562.htm 上周提交了一个项目(内部使用的),一同事提出个BUG,说要禁用退格键(backspace或者叫后退键),因为这 ...