Set接口的实现类:HashSet TreeSet
TreeSet
数据结构是二叉树
它会通过比较元素来进行排序,来存储
使用TreeSet<T> 泛型T必须是可排序的:T implements Comparable<T>
或者
new TreeSet<T>(Comparator c)
c = new Comparator<T>(){
public int compare(T O1,T O2){
}
};
HashSet 和 TreeSet区别:
1.数据结构:
HashSet是采用哈希表实现的
TreeSet是采用二叉树实现的
2.操作性能:
HashSet保存值的性能更优
TreeSet元素是可以进行排序的,比较值的性能更优
3. HashSet可以放入null,但只能存放一个
TreeSet不允许存放null
----------------------------------------------------
Map接口
键值对 存在一种对应关系
键:key
值:value
一个key只能对应一个value
map存在两个泛型 :Map<K,V>
K 键的泛型
V 值的泛型
map的优点:通过key可以快速找到相应的value
实现类:
HashMap TreeMap Hashtable Properties
HashMap
HashSet底层通过HashMap实现的
HashSet的值放入到HashMap的key中
HashSet值不可重复,HashMap的key不可重复
如何判断HashMap中key是否重复:和HashSet原理一致
和HashSet不同:如果key相同的话,此时HashMap是做value值覆盖
HashSet中如果值相同,做的是舍去值
常用方法:
put(K key,V value) 添加键值对元素 还可以作为 修改方法
get(K key) 根据指定key获取集合中的元素
remove(K key) 根据指定key删除集合中的元素
clear() 清空所有的键值对
containsKey(K key) 集合中是否包含指定key
containsValue(V value) 集合中是否包含指定value
map.putAll(Map<? extends K,? extends V> newmap)
将newmap集合中的全部元素添加到当前map集合中
newmap的key的泛型应该是map的key的泛型 或者 map的key的泛型的子类
newmap的value的泛型要求和key泛型要求 相同
!!!map遍历的三种方式
------------------------------------------------
HashMap 和 Hashtable 异同:
相同:数据结构都是哈希表,用法基本一致
区别:
1.Hashtable 线程安全,效率相对较低
HashMap 线程不安全 ,效率相对较高
2.Hashtable key和value不能为null
如果key或者value为null,编译能通过,运行时报错NullPointerException
HashMap 允许key 和 value 为null
3.Hashtable 可以使用 Enumeration 来遍历
Enumeration接口 作用和Iterator相似
常用方法:
boolean hasMoreElements()
E nextElement()
------------------------------------------------
TreeMap拿key出来排序
TreeSet拿值出来排序
TreeMap 和 HashMap区别:
1.数据结构:
TreeMap 采用二叉树
HashMap 采用哈希表
2.操作性能:
HashMap保存值的性能更优
TreeMap元素是可以进行排序的,比较值的性能更优
3. HashMap 允许 key 和value 为null
TreeMap 不允许key为null value可以为null
------------------------------------------------
预习:IO流
1.HashMap<Integer,User> map = new HashMap<Integer,User>();
class User{String name;Integer age;}
用三种方法遍历user的姓名name和年龄age
2.
public static String remove1(String str){
str = "Hello"
return "Heo" 删除所有重复的字符
}
public static String remove2(String str){
str = "Hello"
return "Helo" 重复的字符只出现一次
}
提示:把字符串中的每个字符 作为key放到HashMap中,将相应字符出现的次数 作为 value
HashMap<Character,Integer>
讲师笔记,Java基础学习之路之day19——Set,Map
猜你喜欢
转载自blog.csdn.net/u011189148/article/details/81417161
今日推荐
周排行