基础笔记8(二)(容器-引用类型的排序)

1.类库中比较对象的大小实现了comparable接口的compateTo().

已经实现了的如:integer,date,String(比较是每个字符的unicode编码大小,字符一样比较长度)

2.比较对象的两种方法:collections类提供的

1.public static <T extends Comparable<? super T>> void sort(List<T> list) {}比较的对象实现Comparable接口的comrateTo()比较方法, 

2.public static <T> void sort(List<T> list, Comparator<? super T> c) {}另外编写两个对象的比较方法实现comparator接口的compate(),独立于比较的对象。

Collections提供排序算法。

3.hashSet,treeSet对于集合自定义元素需要重写hashcode和equals方法以区别对象相等去重复。

4.有序的集合和map:TreeSet TreeMap

4.1对于Tree容器是在添加元素时进行了排序,元素内容修改时候不会进行排序,并且可以修改产生相同数据。

构建TreeSet的集合的元素需要实现comparable接口,或者构建时候提供实现comparator接口的比较器。

构建TreeMap容器key也要已经实现接口,或者提供比较器(TreeSet其实也一种填充了value的TreeMap)

5.Collections的常用方法:

shuffle(List<?> list) 洗牌:随机打乱顺序

reverse(List<?> list)  反序

addAll(Collection<? super T> c, T... elements) 

swap(List<?> list, int i, int j) 交换数据

时间: 2024-10-06 07:05:34

基础笔记8(二)(容器-引用类型的排序)的相关文章

MYSQL基础笔记(二)-SQL基本操作

SQL基本操作 基本操作:CRUD,增删改查 讲SQL的基本操作根据操作对象进行分类: 1.库操作 2.表操作 3.数据操作 库操作: 对数据库的增删改查 新增数据库: 基本语法: 1 Create database 数据库名字[库选项]: 库选项:用来约束数据库,分为两个选项:1.字符集设定:charset/character set 具体字符集(数据存储的编码格式,中文常用字符集gbk和utf8.).2.校对集设定:collate 具体校对集(数据比较的规则). 例如: 其中:数据库名字不能

基础笔记(二):设计模式摘录

前言 收录一些自己在开发过程中比较常用的模式,整理出来以便自己复习,毕竟熟才能生巧,才能变通,举一反三. 设计模式在大多数灵活性好.可扩展性高.可移植的优秀程序中都有运用,比如界面展现层运用的MVC模式的主要关系就是由Observer(View-Model).Composite(CompositeView嵌套视图)和Strategy(View-Controller)三个设计模式给出的.下面只列出模式的脉络大纲,如果想再拓展开且有时间的可以把经典砖头<设计模式>多嚼几遍.如果想了解个入门的,也可

JavaSE基础笔记十二

第十一章 多线程 理解程序.进程.线程的概念 程序可以理解为静态的代码. 进程可以理解为执行中的程序. 线程可以理解为进程的近一步细分,程序的一条执行路径. 2.如何创建java程序的进程(重点) 方式一:继承于Thread类 ①创建一个继承于Thread的子类 ②重写Thread类的run()方法,方法内实现此子线程要完成的功能 ③创建一个子类的对象 ④调用线程的start():启动此线程,调用相应的run()方法 ⑤一个线程只能够执行一次start 方式二:实现Runnable接口 ①创建一

Oracle基础笔记十二

第十二章 用户控制权限 1.权限: 数据库安全性:系统安全性和数据安全性 系统权限: 对于数据库的权限 对象权限: 操作数据库对象的权限 2.系统权限 超过一百多种有效的权限 数据库管理员具有高级权限以完成管理任务,例如: 创建新用户 删除用户 删除表 备份表 2.1 DBA 使用 CREATE USER 语句创建用户 CREATE USER user IDENTIFIED BY   password; CREATE USER  scott IDENTIFIED BY   tiger; 2.2

python基础笔记(二)

安装pycharm pycharm激活方法参考了:https://blog.csdn.net/u014044812/article/details/78727496 本文主要参考了:http://www.cnblogs.com/wupeiqi/articles/5444685.html 一.运算符: 1.算数运算:返回一个数 2.比较运算:返回一个布尔值 3.赋值运算:返回一个数 4.逻辑运算:返回一个布尔值 5.成员运算:返回布尔值 二.数据类型: 1.数字 int(整型) float(浮点型

数据结构基础笔记(二)【严蔚敏】

动态存储管理:伙伴系统 分配内存算法思想: 当程序提出大小为n的内存分配请求时,首先在可利用表中查找大小与n相匹配的子表. ◆ 若存在2^(k-1)< n ≤ 2^k-1的空闲子表结点:则将子表中的任意一个结点分配之: ◆ 若不存在2^(k-1) < n ≤ 2^k-1的空闲子表结点:则从结点大小为2^k的子表中找到一个空闲结点,将其中一半分配给程序,剩余的一半插入到结点大小为2k-1的子表中. 注:在进行大小为n(2^(k-i-1) < n ≤ 2^(k-i)-1,i=1,2,-,k-

Android基础笔记(二)

测试的相关概念 Android中的单元测试 日志猫的介绍 登陆案例 把数据保存到SD卡上 Android中几个常用的目录 获取SD卡的大小及可用空间 文件权限的概念 SharedPreferences使用 Android官方推荐的生成XML的方式 Android官方推荐的解析XML的方式 测试的相关概念 好的程序不是开发出来的,是测试出来的. 根据是否知道源程序源码: 黑盒测试:不知源码,只是测试程序的功能 白盒测试:知道源码,根据源代码进行测试 根据测试的粒度:(模块的大小) 单元测试:uni

MYSQL基础笔记(三)-表操作基础

数据表的操作 表与字段是密不可分的. 新增数据表 1 Create table [if not exists] 表名( 2 字段名 数据类型, 3 字段名 数据类型, 4 字段n 数据类型 --最后一行不需要加逗号 5 )[表选项]; If not exists:如果表名不存在,那么就创建,否则不执行创建代码,实现检查功能. 表选项:控制表的表现 1.字符集:charset/character 具体字符集:--保证表中数据存储的字符集. 2.校对集:collate 具体校对集: 3.存储引擎:e

《语义网基础教程》学习笔记(二)

二.RDF概述(参考http://zh.transwiki.org/cn/rdfprimer.htm) 1.本体: 一个本体是一个概念体系(conceptualization)的显式的形式化规范. 一般来说,一个本体形式地刻画一个论域.一个典型的本体由有限个术语及它们之间的关系组成. ★在万维网这个环境中,本体提供了对给定领域的一种共识.这种共识对于消除术语差别是必要的. 通过把各自的术语差异映射到一个公共的本体之间的直接映射,可以消除这些术语差异. 不管采用哪种方案,本体都支持语义可共用性(s