Airbnb|Java基础之浅谈集合( 五 )


★ 把map集合转成set的方法:

  • Set keySet();
  • Set entrySet();//取的是键和值的映射关系 。
  • Entry就是Map接口中的内部接口;
  • 为什么要定义在map内部呢?entry是访问键值关系的入口 , 是map的入口 , 访问的是map中的键值对 。
——————————————————————————————————————————————————————
★取出map集合中所有元素的方式一:keySet()方法 。
  • 可以将map集合中的键都取出存放到set集合中 。 对set集合进行迭代 。 迭代完成 , 再通过get方法对获取到的键进行值的获取 。
    Set keySet = map.keySet();
Iterator it = keySet.iterator();
while(it.hasNext()) {
Object key = it.next();
Object value = https://mparticle.uc.cn/api/map.get(key);
System.out.println(key+\":\"+value);

——————————————————————————————————————————————————————
★取出map集合中所有元素的方式二:entrySet()方法 。Set entrySet = map.entrySet();
Iterator it = entrySet.iterator();
while(it.hasNext()) {
Map.Entry me = (Map.Entry)it.next();
System.out.println(me.getKey()+\"::::\"+me.getValue());

——————————————————————————————————————————————————————
★使用集合的技巧:
  • 看到Array就是数组结构 , 有角标 , 查询速度很快 。
  • 看到link就是链表结构:增删速度快 , 而且有特有方法 。 addFirst; addLast; removeFirst(); removeLast(); getFirst();getLast();
  • 看到hash就是哈希表 , 就要想要哈希值 , 就要想到唯一性 , 就要想到存入到该结构的中的元素必须覆盖hashCode , equals方法 。
  • 看到tree就是二叉树 , 就要想到排序 , 就想要用到比较 。
★比较的两种方式:
  • 一个是Comparable:覆盖compareTo方法;
  • 一个是Comparator:覆盖compare方法 。
  • LinkedHashSet , LinkedHashMap:这两个集合可以保证哈希表有存入顺序和取出顺序一致 , 保证哈希表有序 。
★集合什么时候用?
  • 当存储的是一个元素时 , 就用Collection 。 当存储对象之间存在着映射关系时 , 就使用Map集合 。
保证唯一 , 就用Set 。 不保证唯一 , 就用List 。 五、排序与查找小补充
  • Collections类提供的用于排序和查找的类方法如下::point_down:
  • public static sort(List list):该方法可以将list的元素按升序排序
  • int binarySearch(List listT keyCompareTo c):二分查找
  • String类实现了Comparable 接口 , 规定字符串按字典序比较大小 , 如果链表中存放的对象不是String对象 , 那么创建对象的类必须实现Comparable 接口 , 即用该接口中的int compareTo(T b)方法来规定对象的大小关系 , (原因是sort()方法在排序时需要调用名字时compareTo的方法 , 来比较的对象大小) 。
  • 就时如果对象不是String类型的 , 我们在用sort时需要自己编写compareTo()方法 。
六、结尾