Map类 一种顺序列表 正确使用Map:
- 作为key的对象必须正确覆写equals(),相等的两个key实例调用equaks()必须返回true;
- 作为key的对象还必须正确覆写hashCode()方法,且hasCode()方法要严格遵循以下规范:
- 如果两个对象相等,则两个对象的hashCode()必须相等;
- 如果两个对象不相等,则两个对象的hashCode()尽量不要相等。
- 方法1:V get(Object key) ,返回Map集合中指定键对象所对应的值。V表示值的数据类型。
- 方法2:V put(K key,V value) ,向 Map 集合中添加键-值对,返回 key 以前对应的 value,如果没有, 则返回 null
- 方法3:V remove(Object key), 从 Map 集合中删除 key 对应的键-值对,返回 key 对应的 value,如果没有,则返回null
- 方法4:Set entrySet() ,返回 Map 集合中所有键-值对的 Set 集合,此 Set 集合中元素的数据类型为 Map.Entry
- 方法5:Set keySet() ,返回 Map 集合中所有键对象的 Set 集合
Set类
- 将元素添加进Set:boolean add(E e)
- 将元素从Set删除:boolean remove(Object e)
- 判断是否包含元素:boolean contains(Object e)
-
HashSet是无序的,是因为它实现了Set接口,并没有实现SortedSet接口;
-
TreeeSet是有序的,因为它实现了SortdeSet接口。
Set用于存储不重复的元素:-
放入HashSet的元素与作为HashMap的key要求相同;
-
放入TreeSet的元素与作为TreeMap的key要求相同;
HashSet类 HashSet 类是按照哈希算法来存储集合中的元素,使用哈希算法可以提高集合元素的存储速度,当向 Set 集合中添加一个元素时,HashSet 会调用该元素的 hashCode() 方法,获取其哈希码,然后根据这个哈希码计算出该元素在集合中的存储位置。 在 HashSet 类中实现了 Collection 接口中的所有方法- HashSet():构造一个新的空的 Set 集合。
- HashSet(Collection extends E>c):构造一个包含指定 Collection 集合元素的新 Set 集合。其中,“< >”中的 extends 表示 HashSet 的父类,即指明该 Set 集合中存放的集合元素类型。c 表示其中的元素将被存放在此 Set 集合中。
-
E first():返回此集合中的第一个元素。其中,E 表示集合中元素的数据类型
-
E last():返回此集合中的最后一个元素
-
E poolFirst():获取并移除此集合中的第一个元素
-
E poolLast():获取并移除此集合中的最后一个元素
-
SortedSet subSet(E fromElement,E toElement):返回一个新的集合,新集合包含原集合中 fromElement 对象与 toElement
对象之间的所有对象。包含 fromElement 对象,不包含 toElement 对象 -
SortedSet headSet
不包含 toElement 对象 -
SortedSet tailSet(E fromElement):返回一个新的集合,新集合包含原集合中 fromElement 对象之后的所有对
象。包含 fromElement 对象。
遍历SortedSet按照元素的排序顺序遍历,也可以自定义排序算法。
-
object类
-
equals方法:与equals的对比:,既可以判断基本类型,又可以判断引用类型;如果判断的是基本类型,判断的值是否相等;如果判断的是引用类型,判断的地址是否相等,及判断是不是同一个对象。
-
hashCode方法:提高具有哈希结构的容器的效率;两个引用,如果指向的是同一个对象,则哈希值肯定一样;两个引用,如果指向的是不同对象,则哈希值是不一样的;哈希值主要根据地址号来,不能将哈希值完全等价于地址;
-
toString:默认返回:全类名+@+哈希值的十六进制
-
finzlize方法:当对象被回收时,系统自动调用该对象的finzlize方法。子类可以重写该方法,做一些释放资源的操作;什么时候被回收:当某个对象没有任何引用时,则jvm就认为这个对象是一个垃圾对象,就会时候垃圾回收机制来销毁该对象,在销毁该对象前,会调用finzlize方法。
object常用的方法- Object clone():创建与该对象的类相同的新对象
- boolean equals(Object):比较两个对象是否相等。默认比较的是地址值
- void finailze():当垃圾回收器确定不存在对象的更多引用时,对象的回收器调用该方法
- Class getClass():返回一个对象运行时的实例类(.class文件)
- int hashCode():返回该对象的散列码值
- void notify():激活等待在该对象的监视器上的一个线程
- void notifyALL():激活等待在该对象的监视器上的全部线程
- String toString():返回该对象的字符串表示,默认返回运行时类名+@+对象的hashCode的16进制数
- void wait():在其他线程调用此对象的notify()方法或notifyALL()方法前,导致当前线程等待
String类
- char;charAt();获取某个位置的字符
- String;concat();字符串的拼接,一般字符串拼接直接相加就好了。
- boolean;contains();判断原字符是否含有xxx字符串,常用于子串的判断
- boolean;endsWith();判断原字符是否以xxx字符串结尾。
- boolean;startsWith();判断原字符是否以xxx字符串开头
- boolean;equals();判断两边字符串内容是否相同;==判断地址是否相同
- boolean;equalslgnoreCase();忽略大小写判断两边字符串的内容是否一样
- int;indexOf();计算给出字符串第一个出现的位置
- int;LastindexOf();计算给出字符串最后一个出现的位置
- int;length();计算字符串的长度
- String;replace();字符串内容的替换
- String[];split();字符串切割,最终结果是一个字符串数组
- String;substring();字符串截取,左闭右开:【)
- String;trim(),去掉字符串左右两边的空格,中间的不行
- static String;valueOf();基本数据类型转为字符串操作
StringBuilder类 线程不安全的可变字符序列
- 构造方法:StringBuilder():以默认容量创建空的StingBuilder对象;StringBuilder(int capacity):以指定容量创建空的StringBuilder对象;StringBuilder(String str):以指定的字符串创建StringBuilder对象
- 成员方法:获取功能:int caoacity()、获取容量;int length()获取长度;添加功能:append(int value):追加。可以追加多种类型;insert(int offset,String s):在指定的位置插入指定数据;删除功能:deleteCharAt(int index):删除指定索引处的元素;delete(int start,int end):删除[删除start,end-1]范围内的元素;替换功能:replace(int start,int end,String s)将[start,end-1]范围内的元素替换成指定字符串反转功能;反转功能:reverse():元素反转;截取功能:String subString(int start):截取指定位置一直到末尾、String subString(int start ,int end):截取{[start,end-1]范围。
-
StringBuffer线程安全,StringBuilder非线程安全
-
StringBuilder相比于StringBuffer有速度优势,多数情况下使用StringBuilder类,但当被要求线程安全时必须使用StringBuffer类。
运行垃圾回收处理机制(系统会在某个不确定的时间调用该方法)
会调用finalize(),进行垃圾回收
- PrintStream out(标准输出流):此流已打开并准备接收输出数据。通常,对应于显示器输出或者由主机环境或用户指定的另一个输出目标。
- InputStream in(标准输入流):此流已打开并准备提供输入数据。通常,对应于键盘输入或者由主机环境或用户指定的另一个输入源。
- PrintStream err(标准的错误输出流):其语法与 System.out 类似,不需要提供参数就可输出错误信息。也可以用来输出用户指定的其他信息,包括变量的值。
- arraycopy() 方法:该方法的作用是数组复制,即从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。
- currentTimeMillis() 方法:该方法的作用是返回当前的计算机时间,时间的格式为当前计算机时间与 GMT 时间(格林尼治时间)1970 年 1 月 1 日 0 时 0 分 0 秒所差的毫秒数。一般用它来测试程序的执行时间。
- exit() 方法:该方法的作用是终止当前正在运行的 Java 虚拟机
- gc() 方法:该方法的作用是请求系统进行垃圾回收,完成内存中的垃圾清除。
- getProperty() 方法:该方法的作用是获得系统中属性名为 key 的属性对应的值。
Date类 表示特定的瞬间,精确到毫秒值
- 构造方法:Date();以当前时间毫秒值创建Date对象;Date(long time):以指定的毫秒值创建Date对象
- 成员方法:long getTime():获取Date对象的毫秒值;setTime(long time):设置Data对象的毫秒值
- boolean after(Date when):判断此日期是否在指定日期之后
- boolean before(Date when):判断此日期是否在指定日期之前
- int compareTo(Date anotherDate):比较两个日期的顺序
- boolean equals(Object obj):比较两个日期的相等性
- long getTime():此 Date 对象表示的毫秒数
- String toString():
- 把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy。
其中 dow 是一周中的某一天(Sun、Mon、Tue、Wed、Thu、Fri 及 Sat)



