1.1集合排序
可以通过集合的工具类java.util.Collections的静态方法sort需要注意的时,只能对List排序,因为它有序.
Collections.sort(list);
排序字符串:字符串排序是按照字符串字符的编码顺序排序的
如果要将字符串按照自己想要的方式排序就自定义元素类型实现Comparable接口重写int compareTo(Point o)方法
实现comparable接口后需要重写的方法compareto,该方法是用来定义当前对象(this)与参数对象(o)之间的大小关系,返回值不关注具体取值,值关注范围:
当返回值>0:当前对象大于参数对象(this>0)
当返回值<0:当前对象小于参数对象
当返回值=0:两个对象相等
1.2队列java.util.Queue
队列可以存放一组元素,存取元素必须遵循:FIFO即:first input first output 先进先出 queue 接口集成自collection
方法:
boolean offer(E e)入队操作,将给定的元素添加到队列末尾
E poll()出队操作,取出对首元素,取出后该元素就从队列删除
E peek()引用对首元素,获取对首元素,但是该元素还在队列中
双端队列 Deque,Deque继承自接口Queue,双端队列就是两端都可以进出的队列
方法:
boolean offer(E e)入队操作,将给定的元素添加到队列末尾
boolean offerFirst(E e)入队操作,将给定的元素添加到队首,同上
boolean offerLast(E e)入队操作,将给定的元素添加到队列末尾,同上
E poll()出队操作,取出对首元素,取出后该元素就从队列删除
E pollLast()队操作,取出对首元素,取出后该元素就从队列删除
E peek()引用对首元素,获取对首元素,但是该元素还在队列中
2 散列表Map:java.util.MapMap 查找表以key-value对的形式存放元素。所以看起来像是一个多行的表格。
map要求key不允许重复(equals比较为true)
常用实现类 java.util.HashMap散列表,使用散列表算法实现的map
v put(K k, V v)将给定的kv添加进map中若给定的key在map中已经存在,由于map要求key不允许重复,所以这是为替换value操作返回值为这个key原来对应的value值若key在map中不存在,则返回null,使用相同key替换value操作
v get(K k)根据给定的key获取对应的value,若给定的key在当前map中不存在,则返回null
remove(K k)根据key删除元素
3影响散列表查询新能的一个因素是:产生链表而链表的产生的一个主要因素是:
作为key的元素hashcode值一样,而equals比较不为true
hashcode值一样时,在map内部数组的位置相同,但是若key不同,那么就会在该位置产生一个链表,遍历链表检索数据会降低hashmap检索性能
所以要避免
因此在api文档中也有说明对equals与hashcode的重写要求:
1.成对重写,即:当重写一个类的equals方法时,就应当连同重写hashcode方法
2.一致性,即:当两个对象equals比较为true时,hashcode方法返回的数字应该相等,反之,两个对象hashcode相等,equals比较应当为true否则会在hashmap中产生链表
3.稳定性,即:当一个对象参与equals比较的属性的值没有发生改变的前提下,多次调用hashcode返回的数字应当不变。
另一个影响散列表查询速度的因素是,散列表默认初始时散列通大小为16,每当散列表容量达到75%时就会进行扩容,而又因为散列表元素位置是根据hashcode值进行计算产生的位置,当容量产生变化的时候而又保证散列表中元素依然能找到就需要经原有的元素进行重新遍历,也就是当散列表在扩容的时候会产生额外的运算,想要解决这个问题需要从散列表容量进行考虑。
map的遍历
遍历map有三种方式
1 遍历所有的key
遍历所有的keyset<K> heyset();将当前map中所有的key存入一个set集合后返回,遍历该集合等同于遍历了map中所有的key
2 遍历所有的键值对(entry)
获取每一组键值对set<entry> entrySet()map将每一个键值对以一个entry的势力保存entry是map的内部类,提供了两个常用的方法getkey() getvalue()
3 遍历所所有的value(不常用)
遍历所有的valueCollection values()将当前map中所有value存入一个集合后返回

我是初学者,如有更新不好的,欢迎这位大神指出,谢谢大家!

更多精彩以后更新,转载注明!

java-集合排序,队列,散列表map以及如何遍历的更多相关文章

  1. Java集合--阻塞队列及各种实现的解析

    阻塞队列(Blocking Queue) 一.队列的定义 说的阻塞队列,就先了解下什么是队列,队列也是一种特殊的线性表结构,在线性表的基础上加了一条限制:那就是一端入队列,一端出队列,且需要遵循FIF ...

  2. Java集合(十)实现Map接口的HashMap

    Java集合(十)继承Map接口的HashMap 一.HashMap简介(基于JDK1.8) HashMap是基于哈希表(散列表),实现Map接口的双列集合,数据结构是“链表散列”,也就是数组+链表 ...

  3. Java集合中List,Set以及Map等集合体系详解

    转载请注明出处:Java集合中List,Set以及Map等集合体系详解(史上最全) 概述: List , Set, Map都是接口,前两个继承至collection接口,Map为独立接口 Set下有H ...

  4. Java 集合 ArrayList和LinkedList的几种循环遍历方式及性能对比分析 [ 转载 ]

    Java 集合 ArrayList和LinkedList的几种循环遍历方式及性能对比分析 @author Trinea 原文链接:http://www.trinea.cn/android/arrayl ...

  5. Java集合排序及java集合类详解--(Collection, List, Set, Map)

    1         集合框架 1.1         集合框架概述 1.1.1         容器简介 到目前为止,我们已经学习了如何创建多个不同的对象,定义了这些对象以后,我们就可以利用它们来做一 ...

  6. JAVA集合框架(三)-Map

    前言 Map是java中用于存储键值对映射的接口.是解决编程问题最常用的数据结构之一.在工作中,有时候为实现一个功能可能写了好大一段代码,运行是ok了,但是就是不想回头再看,不敢相信自己写的这么烂.这 ...

  7. Java集合List、Set、Map

    集合是 java 基础中非常重要的一部分,同样也是 Java 面试中很重要的一个知识点.所以,给王小整理了这篇关于集合的文章. 1.接口继承关系以及实现 集合类存放于 Java.util 包中,主要有 ...

  8. Java集合——List,Set,Map总结笔记

    1. 集合 Collection 1.1 Java 集合框架 ​ ​ ​ ​ ​ ​ ​ ​ Java 集合框架位于 java.util 包中.Java 集合框架主要包括两种类型的容器,一种是集合(C ...

  9. java 集合排序(转)

    Java API针对集合类型排序提供了两种支持:java.util.Collections.sort(java.util.List)java.util.Collections.sort(java.ut ...

随机推荐

  1. Python列表推导式,字典推导式,元组推导式

    参考:https://blog.csdn.net/A_Tu_daddy/article/details/105051821 my_list = [ [[1, 2, 3], [4, 5, 6]] ] f ...

  2. 1.1 操作系统的第一个功能——虚拟化硬件资源 -《zobolの操作系统学习札记》

    1.1 操作系统的第一个功能--虚拟化硬件资源 目录 1.1 操作系统的第一个功能--虚拟化硬件资源 问1:操作系统一般处于计算机系统的哪一个位置? 问2:管理硬件资源为什么要单独交给操作系统? 问3 ...

  3. BUUCTF-一叶障目

    一叶障目 010editor打开没发现有什么异常,看分辨率尺寸觉得不对劲,修改了一下发现了flag 图片第二组前面四个是宽后面是高,修改第七位为05即可发现flag flag{66666}

  4. 重学ES系列之新增的几个循环方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. django生成迁移文件和执行迁移的命令

    生成迁移文件: python manage.py makemigrations    #创建数据库迁移文件 执行迁移: python manage.py migrate    # 根据数据库迁移文件生 ...

  6. UiPath存在元素Element Exists的介绍和使用

    一.Element Exists的介绍 使您能够验证UI元素是否存在,即使它不可见,输出的是一个布尔值 二.Element Exists在UiPath中的使用 1. 打开设计器,在设计库中新建一个Se ...

  7. 全国土壤阳离子交换量CEC空间分布数据

    数据下载链接:百度云下载链接​ 土壤阳离子交换量,简称CEC,是指土壤胶体所能吸附各种阳离子的总量.土壤阳离子交换量 cation exchange capacity 即CEC 是指土壤胶体所能吸附各 ...

  8. 【一知半解】AQS

    什么是AbstractQueuedSynchronizer(AQS) 字面意思是抽象队列同步器,使用一个voliate修饰的int类型的同步状态,通过一个FIFO队列完成资源获取的排队工作,把每个参与 ...

  9. 论文阅读 TEMPORAL GRAPH NETWORKS FOR DEEP LEARNING ON DYNAMIC GRAPHS

    14 TEMPORAL GRAPH NETWORKS FOR DEEP LEARNING ON DYNAMIC GRAPHS link:https://scholar.google.com.hk/sc ...

  10. 基于Caffe ResNet-50网络实现图片分类(仅推理)的实验复现

    摘要:本实验主要是以基于Caffe ResNet-50网络实现图片分类(仅推理)为例,学习如何在已经具备预训练模型的情况下,将该模型部署到昇腾AI处理器上进行推理. 本文分享自华为云社区<[CA ...