A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© zjj5669436182 中级黑马   /  2017-12-15 21:44  /  1507 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

集合进阶版set
作者:一衡
今日主要学习了setcollections工具类、Map接口几大板块知识。记忆和练习居多。
前面已经学习过了集合的框架中所,知道,集合的两大分支为List Set
二、Set
Set属于Collection子接口。
特点:无序(读取有可能和存储顺序不一样),无索引,没有重复的元素。
1、HashSet
HashSet<E>();属于Set实现类,也就继承了CollectionSet的功能。其中比较哈希值(每个元素都会调用hashCode()产生一个哈希值)。这也是HashSet没有重复元素的保证。如果存入的是自定义类,需要重写HashCode()equals()方法。
创建HashSet格式
Set<E>  set = new HashSet<E>();
HashSet<E> set = new HashSet<E>();
如果想要Set保持原顺序排序可以使用LinkedHashSet<>();
2、遍历方式:转数组、迭代器、增强for
3、 HashCode()方法的优化
如果让hashCode()方法返回一个固定值,那么每个新添加的元素都要调用        equals(Object obj)方法比较,那么效率较低。只需要让不同属性的值的元素产生不同的哈        希值,那么就可以不再调用equals方法比较提高效率。
二、Collections工具类
特点是一个工具类
主要使用场景在有序的集合应用中。
1、主要功能
A、Static int binarySearch(List listObject key);二分查找,查找制定列表的索引位置。
B、Static void copy(List dest , List src);源列表覆盖到目标列表中.
:目标列表长度必须大于等于源列表长度。
CStatic void fill(List listObject o);使用制定对象填充制定列表的所有元素。
DStatic void reverse(List list);反转
EStatic void shuffle(List list);随机置换
FStatic void sort(List list);按照自然顺序排序
GStatic void swap(List list, int i int y);将列表中的两个元素互换。
三、Map接口
Map接口,双列集合的顶层接口。
1、格式
Map<K,V> map = new HashMap<K,V>();(又称夫妻集合)
K:,不可重复
V:具体只能有一个值.
2、应用场景
A、映射功能
V put(K key,V value);如果集合中不存在key,返回nullkey添加到map集合中
如果存在key则返回原有的value,然后将value替换原先的value.
B、删除
V remove(Object key);删除,根据制定key删除关系值返回关系值。
boolean clear();清空
C、判断
boolean containsKey(Object key):判断Map集合中是否包含键为key的键值对
boolean containsValue(Object value):判断Map集合中是否包含值为value键值对
boolean isEmpty():判断Map集合中是否没有任何键值对
D、获取
V get(Object key):根据键获取值
int size():返回Map中键值对的个数
E、遍历
  Set<Map.Entry<K,V>> entrySet():将每个键值对封装到一个个Entry对象中,再把所有        Entry的对象封装到Set集合中返回
Set<K> keySet() :Map中所有的键装到Set集合中返回
例如:Map<String ,Sring>  map  = new HashMap<String String >();
Set<String>  keys  = map.keySet();
for(String key : keys){
        String value = map.get(key);
System.out.println(key+”\t”+value);
}
Collection<V> values():返回集合中所有的value的值的集合
例如: Map<String , Sring> map  = new HashMap<String , String>();
Set<Map.Entry<String ,String>>  entrys = map.entrySet();
for(Entry<String ,String> entry : entrys){
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key+“\t”+value);
}

3 个回复

倒序浏览
666保持,继续努力哈
回复 使用道具 举报


回复 使用道具 举报
不错不错   加油   学习使你快乐
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马