现在的位置: 首页 > 综合 > 正文

黑马程序员–12集合类的学习 Map

2018年05月11日 ⁄ 综合 ⁄ 共 1433字 ⁄ 字号 评论关闭

------- android培训java培训、期待与您交流! ---------- 

Map集合:高集合存储键值对,一对一对往里存,而且要保证键的唯一性。
 1,添加。
  put(k key,v value);
  putAll(Map<? extends K,? extends V> m);
 2,删除。
  clear();
  remove(Object key);
 3,判断。
  containsValue(Object value);
  containsKey(Object key);
  isEmpty();
 4,获取。
  get(Object  key);
  size();
  values();

  entrySet()
  keySet()

Map
 |--Hashtable:底层是哈希表数据结构,不可以存入null键和null值,该集合是线程同步的。jdk1.0效率低
 |--HashMap: 底层是哈希表数据结构,允许使用null键和null值,该集合是线程不同步的。jdk1.2效率高
 |--TreeMap:底层是二叉树数据结构,线程不同步。可以用于给map集合中的键排序
 

和set很像。
其实大家,set底层就是使用了Map集合。

 

例子:

import java.util.*;
/*
1,描述学生。
2,定义map容器。将学生作为键,地址作为值,存入。
3,获取map集合中的元素。
*/
class
{
 public static void sop(Object obj){
  System.out.println(obj);
 }
 public static void main(String[] args){
  HashMap<Student,String> hm = new HashMap<Student,String>;
  hm.put(new Student("chenjl01",21),"beijing");
 }
}
class Student
{
 private String name;
 private int age;
 Student(String name,int age){
  this.name = name;
  this.age = age;
 }
 public boolean equals(Object obj){
  if(!(obj instanceof Student))
   return new ClassCastException("类型不匹配");
  Student s = (Student)obj;
  return this.name.equals(s.name) && this.age.equals(s.age);
 }
 public int compareTo(Student s){
  int num = new Integer(this.age).compareTo(new Integer(s.age));
  if(num == 0)
   return this.name.compareTo(s.name);
  return num;
 }
 public int hashCode(){
  return name.hashCode()+age*35;
 }
 public String getName(){
  return name;
 }
 public int getAge(){
  return age;
 }
}

 

------- android培训java培训、期待与您交流! ----------  详细请查看:http://edu.csdn.net/heima/

抱歉!评论已关闭.