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()方法。