基本数据类型的包装类Integer, Float, Double,Long,Byte等都实现的Comparable接口,用于列表List或数组arrays的排序 Comparable<Integer>接口方法的实现,对象列表的升序降序接口 我们通过重写该接口方法,可以对列表进行升序或降序排列. public int compareTo(T o); This interface imposes a total ordering on the objects of each class that…
在实际项目中我们通常会有一个需求就是:想知道在一个列表中是否包含某一个对象 这里ArrayList表.HashSet表和HashMap表都提供了一个contains(obj)方法, 下面说一下两个列表contains(obj)方法的实现原理. ArrayList表: 先遍历表中每个元素(对象),然后对每个元素执行一个equals(obj)方法,该方法返回 一个布尔值.然而,通常我们查询的时候并不会将一个对象的所有属性值都输入,可能 只输入一个具有代表性的属性值,比如name属性,这个时候就要我们…
上一篇说了Java面向对象中的继承关系,在继承中说到:调用对象中的成员变量时,根据引用类型来决定调用谁,而调用成员方法时由于多态的存在,具体调用谁的方法需要根据new出来的对象决定,这篇主要描述的是Java中的多态以及利用多态形成的接口 多态 当时在学习C++时,要使用多态需要定义函数为virtual,也就是虚函数.类中存在虚函数时,对象会有一个虚函数表的头指针,虚函数表会存储虚函数的地址,在使用父类的指针或者引用来调用方法时会根据虚函数表中的函数地址来调用函数,会形成多态. 当时学习C++时对…
Java 8 新特性:接口的静态方法和默认方法 https://blog.csdn.net/sun_promise/article/details/51220518 接口的默认方法和静态方法 https://blog.csdn.net/shy2794109/article/details/80854901 Java中类继承.接口实现的一些要注意的细节问题 https://www.cnblogs.com/haitaofeiyang/p/7721991.html 一.接口中的默认方法.静态方法.抽象…
Set接口 java.util.Set接口 extends Collection接口 Set接口的特点: 不允许存储重复的元素 没有索引,没有带索引的方法,也不能使用普通的for循环遍历 java.util.HashSet集合 implements Set接口 HashSet特点: 不允许存储重复的元素 没有索引,没有带索引的方法,也不能使用普通的for循环遍历 是一个无序的集合,存储元素和取出元素的顺序有可能不一致 底层是一个哈希表结构(查询的速度非常快) Set<Integer> set…
上一节当中我们说道抽象类,抽象类当中的方法可以是抽象的也可以是非抽象的,那么当抽象类中所有方法都是抽象的时候,我们就可以把它重新定义为接口.代码示例: abstract class Animal { abstract void eat(); abstract void goToBed(); } 上述代码写成接口的形式为: interface Animals { public void eat(); public void goToBed(); } 在接口当中的方法,也只能是方法名称,没有方法体.…
22.Set接口的实现类: Set接口存放的元素是无序的且不包括反复元素. 1>实现类HashSet: HashSet类依据元素的哈希码进行存放,取出时也能够依据哈希码高速找到.HashSet不保存元素的加入的顺序. 样例: import java.util.HashSet; import java.util.Iterator; public class Student { public static void main(String[] args) { HashSet<String>…
package java.lang; import java.util.*; public interface Comparable<T> { public int compareTo(T o); } 1.什么是Comparable接口 此接口强行对实现它的每个类的对象进行整体排序.此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 .实现此接口的对象列表(和数组)可以通过 Collections.sort (和 Arrays.sort )进行自动排序.实现此接…
一.抽象 在使用抽象类时需要注意几点: 1.抽象类不能被实例化,实例化的工作应该交由它的子类来完成,它只需要有一个引用即可. 2.抽象方法必须由子类来进行重写. 3.只要包含一个抽象方法的抽象类,该方法必须要定义成抽象类,不管是否还包含有其他方法. 4.抽象类中可以包含具体的方法,当然也可以不包含抽象方法. 5.子类中的抽象方法不能与父类的抽象方法同名. 6.abstract不能与final并列修饰同一个类. 7.abstract 不能与private.static.final或native并列…
一.set接口 概念:set接口继承自Collection接口,与List接口不同的是,set接口所储存的元素是不重复的. 二.HashSet集合 概念:是set接口的实现类,由哈希表支持(实际上是一个HashMap集合).HashSet集合元素的提取顺序与存储顺序不相同. 采用哈希表数据结构存储数据,保证元素唯一性的方式依赖于:hashCode()与equals()方法. 2.1哈希表 什么是哈希表? 链表与数组的组合. 哈希表底层使用的也是数组机制,数组中也存放对象,而这些对象往数组中存放时…