TreeMap集合、properties集合、hashtable和hahsMap的区别
Day16个人总结
一、TreeMap集合
1、概念: TreeMap集合是有序的,由于是有序的所以可能通过类重写Comparable接口中的comparaTo(),方法对集合进行排序,并且去除重复,同时TreeMap集合和TreeSet集合类似可以使用定制排序通过新建定制排序比较器来进行定制排序。 2、使用如下: TreeMap<K,V>,<>泛型中的K代表key值V代表Value值,key值是唯一的不可重复的,value值是可以重复的。 实现Comparable接口中的comparaTo()方法: public class Company implements Comparable<Company>{ @Override public int compareTo(Company o) { } } 定制排序 public class MyComparator implements Comparator<Student>{ @Override public int compare(Student o1, Student o2) { } } 排序方式: 如果调用者大于参数return正数代表升序,反之代表降序 |
二、properties集合
1、特点: properties集合是无序不允许重复的,properties集合经常用来存储配置文件和用于存储配置信息可以帮助持久存储数据,存储的类型键值和值都必须是字符串String类型,并且允许为Null但是只能允许有一个,Null值也是不可重复的。 2、使用方式: Properties properties = new Properties(); properties.setProperty("a", "aaa"); properties.setProperty("c", "ccc"); properties.setProperty("b", "bbb"); properties.setProperty("b", "bbb"); System.out.println(properties); String value = properties.getProperty("b"); System.out.println(value);
|
三、hashtable和hahsMap的区别(经典面试)
对比如下:
hashtable |
hashmap |
初始容量是11 |
初始容量是16 |
键值不允许有null |
允许有一个null |
线程是安全的 |
线程是不安全的 |
重写hashcode方法经过一定改良 |
直接用原本的hashcode |
四、泛型<>
1、概念: 泛型以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。 2、泛型各个值代表的意思 T type E element K key V value <T>代表普通泛型,可以用任意数据类型来替换T <T extends Person> 受限制的泛型 只能由 Person 以及Person的子类来替换T |
3、Collections类
用法如下:
1、可以将多个元素同时添加到集合中
Collections.addAll(list2, new B(4),new B(2),new B(3));
2、使用二分法查找集合,(前提集合必须是有序的)
int index = Collections.binarySearch(list2, new B(2));
4、IO流
1、字符流和字节流 简单的说字符流就是直接打开能读懂的文本比如txt文档,就是字符流,不能读懂的就是字节流比如mp3文件、视频文件mp4等 2、处理流和节点流 处理流是不直接接触文件或者说接触其它操作的流又叫过滤流 节点流直接接触文件操作的就叫节点流 3、缓冲流又叫内存流 缓冲流相对于节点流和处理流来说拥有更高的执行效率更高的实行效率 |
5、File类
构造方法用法如下:
常用方法如下:
|