Comparable & Comparator】的更多相关文章

一.前言 在Java集合框架里面,各种集合的操作很大程度上都离不开Comparable和Comparator,虽然它们与集合没有显示的关系,但是它们只有在集合里面的时候才能发挥最大的威力.下面是开始我们的分析. 二.示例 在正式讲解Comparable与Comparator之前,我们通过一个例子来直观的感受一下它们的使用. 首先,定义好我们的Person类 class Person { String name; int age; public Person(String name, int ag…
Comparable & Comparator 都是用来实现集合中元素的比较.排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法. Comparator位于包java.util下,而Comparable位于包   java.lang下 Comparable 是一个对象本身就已经支持自比较所需要实现的接口(如 St…
前面我们说TreeMap和TreeSet都是有顺序的集合,而顺序的维持是要靠一个比较器Comparator或者map的key实现Comparable接口.      既然说到排序,首先我们不用去关心什么是Strategy设计模式,也不用关心它为了解决什么问题而存在,我们直接从排序开始看.   1.排序        假设我们有一个int数组需要排序,想一想应该怎么实现,当然首先要有一个int数组,然后呢,然后需要有一个可以实现排序的方法或类,怎么实现排序呢,说到排序算法可能很多人都会什么快速.冒…
原文见: http://www.cnblogs.com/sunflower627/p/3158042.html 1. Comparator 和 Comparable 相同的地方 他们都是java的一个接口, 并且是用来对自定义的class比较大小的, 什么是自定义class: 如 public class Person{ String name; int age }. 当我们有这么一个personList,里面包含了person1, person2, persion3....., 我们用Coll…
java.lang.Iterator & java.lang.Iterable Iterator和Iterable的区别和联系 iterator是具有迭代状态的对象.它允许你检查它是否有更多的元素使用hasNext()并移动到下一个元素(如果有)使用next(). Iterable是可以迭代的一系列元素的简单表示.它没有任何迭代状态,如“当前元素”.相反,它有一种产生迭代器的方法.通常,Iterable应该能够生成任意数量的有效迭代器.也就是说:Iterator是迭代器,可以对可以迭代的对象集合…
我们经常用容器来存放元素,通常而言我们是不关系容器中的元素是否有序,但有些场景可能要求容器中的元素是有序的,这个时候用ArrayList  LinkedList  Hashtable HashMap HashSet 这些容器本身存放的时候就没有办法做到了,这个时候我们有两种思路:第一种思路:对刚刚我们提到的容器类的元素从新排序后存放,就是后面我们要介绍的利用Collections.sort 方法进行排序,第二种思路:是容器在添加元素的时候就进行大小的比较从而来保证元素的排序.下面我开始来详细介绍…
Comparable和Comparator接口是两个用于对对象进行大小比较的接口,在java集合相关类中,也被经常地使用到. 关于其使用,可以参考网络上的其他博客(没什么好说的);这里阐述关于这两个接口的区别,直接看源码即可: package java.lang; // 在java.lang包下 /** * 该接口的实现类: * 1. 本身具有排序的能力,我们称之为该类的自然排序,其compareTo()方法就称为该类的自然排序方法; * 2. 数组或List,可以使用Collections.s…
import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.LinkedList; import java.util.List; public class Test1 { public static void main(String[] args) { List<String> strs = new…
1.接口Comparable<T> API    参数类型:T ---可以与此对象进行比较的那些对象的类型 此接口强行对实现它的每个类的对象进行整体排序.这种排序被称为类的自然排序,类的compareTo()方法被称为它的自然比较方法. 实现此接口的对象列表(和数组)可以通过 Collections.sort(和 Arrays.sort)进行自动排序.实现此接口的对象可以用作有序映射中的键或有序集合中的元素,无需指定比较器. Comparable也只有int compareTo(T objec…
一. Comparable Comparable 是排序接口,若一个类实现了 Comparable 接口,就意味着该类支持排序.实现了Comparable 接口的类的对象的列表或者数组可以通过 Collections.sort 或 Arrays.sort 进行自动排序 public interface Comparable<T> { public int compareTo(T o); } compareTo ,比较此对象与指定对象的顺序,如果该对象小于.等于.大于指定对象,返回负整数.零.正…
一.    Comparable<T>: Comparable是类内部的比较器,用于创建类的时候实现此接口,同时实现比较方法:对于不能修改源码的类则无法应用此方式进行比较排序等. 源码为: public interface Comparable<T> { public int compareTo(T o); } 可以使用如Arrays.sort(T[] a)或Collections.sort(List<T> list)来使用实现了Comparable<T>的…
Comparable 及 Comparator 的区别 Comparable 一个内比较器,类可以和自己比较 compareTo() 自然比较方法 public interface Comparable<T>{ public int compareTo(T o); } public class Book implements Comparable<Book>{ String name; int price; public Book(String name,int price){ s…
Java 中 Comparable 和 Comparator 比较 目录: Comparable Comparator Comparable 和 Comparator比较 第二个例子 之 Comparator 第二个例子 之 Comparable Comparable  Comparable 简介 Comparable 是排序接口. 若一个类实现了Comparable接口,就意味着“该类支持排序”.  即然实现Comparable接口的类支持排序,假设现在存在“实现Comparable接口的类的…
转载 Comparable与Comparator的区别 (转载) Comparable & Comparator 都是用来实现集合中元素的比较.排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法. Comparator位于包java.util下,而Comparable位于包 java.lang下 Comparab…
Comparable & Comparator 都是用来实现集合中元素的比较.排序的: Comparable 是在集合内部定义的方法实现的排序: Comparator 是在集合外部实现的排序: 所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法. Comparator位于包java.util下,而Comparable位于包java.lang下 Comparable 是一个对象本身就已经支持自比较所需要实现的接口(如 Strin…
1.Comparable 2.Comparator  >>>>>> Comparable & Comparator 都是用来实现集合中元素的比较.排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法. Comparator位于包java.util下 而Comparable位于包  …
对于Comparable和Comparator这连个相似的接口,还是做一下比较比较好: Comparable Comparator (1)只包含一个compareTo()方法,此方法可以给两个对象排序(负,0,正) 有compare()和equals()两个方法,compare()方法用来给两个参数排序(负,0,正) (2)如果有一个Person类要实现比较 写在Person类内部: public class Person implements Comparable{ private int i…
Comparable & Comparator 都是用来实现集合中元素的比较.排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法.Comparator位于包java.util下,而Comparable位于包   java.lang下Comparable 是一个对象本身就已经支持自比较所需要实现的接口(如 Stri…
Java 排序 Compare  Comparator接口 Comparable接口 区别 在Java中使用集合来存储数据时非常常见的,集合排序功能也是常用功能之一.下面看一下如何进行集合排序,常用的方法有: Comparator和Comparable Comparator接口 使用步骤: 新建比较类, 实现Comparator接口, 重写compare方法, package sort;  import java.util.Comparator;  public class LuckBoyCom…
Comparable & Comparator 都是用来实现集合中元素的比较.排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法.(简单地说,Comparable 是对对象来进行排序的 , Comparator 是对容器中的元素进行排序的 .) Comparator位于包java.util下,而Comparabl…
comparable接口     是主要是用来自定义类存储在主要是TreeSet,TreeMap(键)集合中存储时,自定通过实现这种接口得到自然排序的功能. comparator 接口  是主要是用来自定义类存储在主要是TreeSet,TreeMap(键)集合中存储时,自定通过实现这种接口得到自定义排序的功能. 区别: 1 comparable在lang包    comparator 在util包 2.实现comparable要重写compareTo方法    comparator要重新comp…
Comparable & Comparator 都是用来实现集合中元素的比较.排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法. Comparator位于包java.util下,而Comparable位于包 java.lang下 Comparable 是一个对象本身就已经支持自比较所需要实现的接口(如 Stri…
Java基础之Comparable与Comparator 一.前言: Java中实现对对象的排序一般情况下主要有以下两种实现方式(万物皆对象嘛): 对象所在的类实现Comparable 接口 定义比较器,实现Comparator接口. 二.Comparable介绍: Comparable是在集合内部定义的方法实现的排序,位于java.lang包下: Comparable只有一个方法: 1 package java.lang; 2 import java.util.*; 3 4 public in…
  转:http://www.yingjiesheng.com/job-002-393-132.html 一.前言 在Java集合框架里面,各种集合的操作很大程度上都离不开Comparable和Comparator,虽然它们与集合没有显示的关系,但是它们只有在集合里面的时候才能发挥最大的威力.下面是开始我们的分析. 二.示例 在正式讲解Comparable与Comparator之前,我们通过一个例子来直观的感受一下它们的使用. 首先,定义好我们的Person类 class Person { St…
1.数组操作类: Arrays        2.两种比较器的使用: Comparable Comparator        3.实现二叉树算法            content (内容)        1.数组操作类: Arrays            Arrays 类一早就开始使用了.最早使用的是它的排序操作,但是现在打开 Arrays 观察一下有那些方法                二分查找法: public static int binarySearch(数据类型[] a,数据…
Collection框架 集合框架(Collection Framework)泛指java.util包的若干个类和接口.如Collection,List,ArrayList,LinkedList,Vector(自动增长数组),HashSet,HashMap等. 集合框架中的类主要封装的是典型的数据结构,如动态数组,链表,堆栈,集合,哈希表等. 集合框架类似编程中经常用到的工具类,使得编码这专注于业务层的实现,不需要从底层实现相关细节—“数据结构的封装”和”典型算法的实现”. 1. Collect…
Java类集框架的优势:       1) 这种框架是高性能的.对基本类集(动态数组,链接表,树和散列表)的实现是高效率的.一般很少需要人工去对这些“数据引擎”编写代码.        2) 框架允许不同类型的类集以相同的方式和高度互操作方式工作.        3) 类集是容易扩展和/或修改的.为了实现这一目标,类集框架被设计成包含一组标准的接口.对这些接口,提供了几个标准的实现工具(例如LinkedList,              HashSet和TreeSet),通常就是这样使用的.如…
20145217 <Java程序设计>第5周学习总结(2) 教材学习内容总结 程序中常有收集对象的需求 9.1collection架构 收集对象的行为,像是新增对象的add()方法.移除对象的remove()方法等,都是定义在java.util.collection中.既然可以收集对象,也要能逐一取得对象,这就是java.lang.Iterable定义行为,它定义了Iterator()方法返回java.util.Iterator操作对象.收集对象共同定义在Collection中,然而根据收集对…
数组.集合:都是一种容器,用一个对象管理多个对象:数组不能自动增长:只能存放同类型的元素 集合能自动扩容:部分集合允许存放不同类型的元素: 1.List: 有顺序的,允许存放重复的元素: 遍历:for  迭代 排序:Comparable Comparator   Collections.sort() ArrayList:数组实现,查询快,增删慢,线程不安全,轻量级: LinkedList:底层用双向循环链表 实现的List 特点:查询效率低,增删效率高 Vector: 底层用数组实现List接口…
1.HashSet类(掌握) 1.哈希值概念      哈希值:哈希值就是调用对象的hashCode()方法后返回的一个int型数字      哈希桶:简单点理解就是存储相同哈希值对象的一个容器 1.HashSet类中的add(obj)方法如何保证元素的唯一性 重写hashCode()和equals()方法 ,为什么,如果一个对象的哈希值和eques方法与容器中的对象有相同的,就不添加.如果没有就添加 2.开发中如何编写hashCode()和equals( )方法      通过eclipse自…