先写一下3这种遍历方法

for循环

List<Teacher> list = new ArrayList<>();
list.add(new Teacher("张三",21));
list.add(new Teacher("李四",28));
list.add(new Teacher("王五",18));
// for 循环
for(int i = 0;i<list.size();i++){
System.out.println(list.get(i));
}
// 增强for :foreach+补全
for (Object object : list) {
System.out.println(object);
}
// 迭代器ITerator, 这是集合特有的
Iterator it = list.iterator();
while(it.hasNext()){
Object next = it.next();
Teacher tea = (Teacher)next;
if(tea.getAge()<20){
it.remove();
System.out.println(tea);// 不合格学生
}
}

List 接口

  1. ArrayList 数组结构 这是list接口的主要实现类
  2. Vector 底层也是数组,线程安全,但效率较慢
  3. LinkedList 链表结构 查询效率慢,增删块

Set

特点:无序,无下标,不重复

set没有特有的方法,都是继承于父接口

底层是通过哈希计算得出内存的地址,如果地址不同则直接赋值,如果地址相同就在看内容。

相同对象,哈希值一定相同,不同对象哈希值可能相同

①HashSet 作为主要实现类

  1. 判断hashCode(是否相同,不同直接存储,当做不重复处理)
  2. 相同时,他才会进行equals比较内容,当内容相同了,不添加

②TreeSet 实现 自然排序

  • 要求:性价到该集合里的类必须支持排序
  • 必须要实现Comparable接口否则汇报类型转换异常
  • 实现Comparable接口 要重写CompareTO()方法,确定比较的依据

定制排序

  • 1.创建一个比较器

    •   comparetor  抽象方法
    •   compare
  • 在创建  TreeSet时
    •   通过有参构造把比较器对象穿进去

自然排序和定制排序比较:

定制排序的优先级高,而且和类结耦!!!

③LinkedHashSet

基于链表的结构  多维护一层添加顺序

Map

遍历:

  所有的key

      keySet() ==> Set 集合

  所有的value

      values() ==> Collection集合

  所有的键值对

      entrySet ==> Set 集合

      在得到键值对后  键值对的类型  Map.Entry 类型

        getKey() 获取该键值对的键

        

最新文章

  1. 控制台查看原生sql
  2. sql语句把字段中的某个字符去掉
  3. java 平面上最近两个点之间的距离
  4. Atitit. 获取cpu占有率的 java c# .net php node.js的实现
  5. Android 利用SharedPreferences保存与删除 用户登录数据
  6. ORACLE 日期比较
  7. hdu1301 Jungle Roads (Prim)
  8. Win8开发疑问与解答
  9. C-C Radar Installation 解题报告
  10. Linux下转换文件从GBK到UTF-8
  11. Parallels Desktop 14.1.3中文版win系统安装教程
  12. 解决tab标签页,相同id时切换失灵的问题
  13. Mysql存储过程入门介绍
  14. Slony-I同步复制部署
  15. PHP 获取上月,本月,近15天,近30天日期
  16. Python 函数(一)
  17. Linux下实现多播(组播)
  18. oracle 归档空间满的解决办法
  19. css用法(持续更新ing)
  20. Angular5学习笔记 - 配置NG-ZORRO(八)

热门文章

  1. thinkphp6.0 多应用模块下提示控制器不存在
  2. nyoj 991 Registration system (map)
  3. Java并发之volatile关键字
  4. mybatis精讲(三)--标签及TypeHandler使用
  5. Django使用mysql数据的流程
  6. windows下的nginx应用
  7. nginx(二):基本应用
  8. es6 filter方法应用
  9. 记一个bootloader的cache问题
  10. redis的主从复制,以及使用sentinel自动处理主机宕机问题,集群