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. Eoapi — 一个可拓展的开源 API 工具

    ​ 在社区中时常会出现"抱怨某商业产品越来越臃肿"的声音,API 工具也是如此.从最早期只做 API 调试的工具,到经过多年的演进后集成全面功能的"庞然大物", ...

  2. 【进阶】Spring中的注解与反射

    [进阶]Spring中的注解与反射 目录 [进阶]Spring中的注解与反射 前言 一.内置(常用)注解 1.1@Overrode 1.2@RequestMapping 1.3@RequestBody ...

  3. 2021.03.06【NOIP提高B组】模拟 总结

    T1 看起来十分复杂,打表后发现答案是 \(n*m\mod p\) 具体的证明... 原式的物理意义,就是从坐标原点(0,0),用每一种合法的斜率, 穿过坐标[1 ~ n , 1 ~ m]的方阵中的整 ...

  4. 网心云在PVE下三种磁盘IO模式(No cache,Write through,Write back)选择与优化指南

    ---------------------------------------------------------------------------------------------------- ...

  5. 学了WEB缓冲投毒-挖SRC的时候咋利用

    学了WEB缓冲投毒-挖SRC的时候咋利用 昨天发了哥WEB缓存投毒的学习文章,但是除了理论和训练营并无实践,正巧翻到了一篇文章,感觉还有点关系,转的一个国外的老哥的文章. 微信公众号:小惜渗透,欢迎大 ...

  6. python-将print内容保存到文件

    通过sys.stdout得到print输出的内容,再进行保存 import sys class Logger(object): def __init__(self, file_path: str = ...

  7. 实现领域驱动设计 - 使用ABP框架 - 创建实体

    用例演示 - 创建实体 本节将演示一些示例用例并讨论可选场景. 创建实体 从实体/聚合根类创建对象是实体生命周期的第一步.聚合/聚合根规则和最佳实践部分建议为Entity类创建一个主构造函数,以保证创 ...

  8. SAP -熟练使用T-Code SHD0

    SHD0 业务顾问和开发顾问都非常熟悉的一个T-Code, 如果能合理使用它,可以省去许多增强和程序修改工作. 当我需要时,我在这里找不到任何相关文档,这就是为什么我想借此机会向我们自己的SCN提供内 ...

  9. IDEA快速创建maven项目

    遇到问题不要急,不要怕. 一.  二. 三.  四.Finish进来之后,项目会加载一会,之后会是下面这样子.  五.继续往下面配置,建立java和resorces文件夹  六.下面配置tomcat服 ...

  10. JS中通过Input中id获取输入框中的值

    HTML中 <input type="text" id="ONE" oninput="kpi()"> JS中 function ...