Set接口:
Set接口存储一组唯一,无序的对象。
HashSet是Set接口常用的实现类。Set set = new HashSet();
HashSet可以看作是HashMap的key:key的hash值不能相等。
Set方法只能增删。
Set中存放对象的引用。
Set接口通过对象的equals()方法比较两个对象是否相等,进而判断加入的元素是否已经存在。
遍历方法有:增强for和迭代器(iterator)
Iterator itor = new list.iterator();
while(itor.hasNext()){
itor.next();
}
HashSet:常常用来将list中的结果去重,但是再转成list时,顺序保持set中的对象顺序,而不是插入顺序。
Map接口:
Map接口专门处理键值映射数据的存储,可以根据键实现对值的操作.
键:key, Map中的key可以作为Set获取,通过keySet()
值:value, Map中的value可以作为Collection 获取,通过values()
键值对:Entry, Map中的映射关系可以通过Set获取,通过EntrySet()。
Map接口常用方法
方法名 | 说明 |
Object put(Object key, Object val) | 以“键-值”对的方式进行存储 |
Object get(Object key) | 根据键返回相关联的值,如果不存在指定的键,返回null |
Object remove(Object key) | 删除由指定的键映射的“键-值对” |
int size() | 返回元素个数 |
Set keySet() | 返回键的集合 |
Collection values() | 返回值的集合 |
boolean containsKey(Object key) | 如果存在由指定的键映射的“键-值对”,返回true |
遍历Map集合:
方法1:通过迭代器Iterator实现遍历
遍历key(Set)
Interator itor = keys.interaor();
while(itor.hasNext()){
String key = (String)itor.next;
String value = (String)countries.get(key) ;
System.out.println(key+"-"+value);
}
方法2:增强型for循环
遍历key(Set)
Set keys = countries.keySet();
for(Object obj:keys){
String key = (String)obj;
String value = (String)countries.get(key) ;
System.out.println(key+"-"+value);
}
方法3:键值对
遍历键值对的集合
Set set = countries.entrySet;
for(Object obj:set){
Map.Entry me = (Map.Entry)obj;
String key = (String)me.getkey();
String value = (String)me.getvalue();
System.out.println(key+"-"+value);
}
泛型
将对象的类型作为参数,指定到其他类或者方法上,从而保证类型转换的安全性和稳定性。
泛型集合可以约束集合内的元素类型。
典型泛型集合ArrayList<E>、HashMap<K,V>。
<E>、<K,V>表示该泛型集合中的元素类型 泛型集合中的数据不再转换为Object。
Collections算法类
Java集合框架将针对不同数据结构算法的实现都保存在工具类中,Collections类定义了一系列用于操作集合的静态方法。
Collections类常用方法:
Collections和Collection不同,前者是集合的操作类,后者是集合接口。
Collections提供的常用静态方法
sort():排序。
binarySearch():查找。
max()\min():查找最大\最小值。
Collections排序:
实现一个类的对象之间比较大小,该类要实现Comparable接口 重写compareTo()方法。