71.【Java.哈希表(散列表)】

80 阅读2分钟

HashMap

1.哈希表的添加(put)

1. put(key,value);对我们所设置的键值对进行赋值的操作;
2. 添加到Map中的数据,与List不一样,是没有顺序的。顺序是根据哈希算法得出的
import java.util.HashMap;
public class Hash {
    public static void main(String[] args) {
      HashMap<String,Double> hashMap=new HashMap<>(10);
      hashMap.put("apple",3.5);
      hashMap.put("organ",1.5);
      hashMap.put("bannda",7.5);
      System.out.println(hashMap);
    }
}

这里是引用

2.哈希表的查询(get)

1.get(key),我们可以通过key找到我们需要的值。
2.通过商品名字查找价格.
import java.util.HashMap;
public class Hash {
    public static void main(String[] args) {
      HashMap<String,Double> hashMap=new HashMap<>(10);
      hashMap.put("apple",3.5);
      hashMap.put("organ",1.5);
      hashMap.put("bannda",7.5);
      System.out.println(hashMap.get("apple"));
    }
}

这里是引用

3.哈希表中是否存在(containsKey/containsValue)

1.containsKey(key);判断key是否包含在这个哈希表中,如果存在true,否则false
2.查看苹果和小猪是否在集合中。
import java.util.HashMap;
public class Hash {
    public static void main(String[] args) {
      HashMap<String,Double> hashMap=new HashMap<>(10);
      hashMap.put("apple",3.5);
      hashMap.put("organ",1.5);
      hashMap.put("bannda",7.5);
      System.out.println(hashMap.containsKey("apple"));
      System.out.println(hashMap.containsKey("pig"));
    }
}

这里是引用

3.containsValue(value);通过value查找是否存在键值对
import java.util.HashMap;

public class Hash {
    public static void main(String[] args) {
      HashMap<String,Double> hashMap=new HashMap<>(10);
      hashMap.put("apple",3.5);
      hashMap.put("organ",1.5);
      hashMap.put("bannda",7.5);
      System.out.println(hashMap.containsValue(3.2));
      System.out.println(hashMap.containsValue(3.5));
    }
}

这里是引用

4.哈希表返回所有Set映射(entrySet)

1.entrySet();返回所有的键值对
import java.util.HashMap;
public class Hash {
    public static void main(String[] args) {
      HashMap<String,Double> hashMap=new HashMap<>(10);
      hashMap.put("apple",3.5);
      hashMap.put("organ",1.5);
      hashMap.put("bannda",7.5);
      System.out.println(hashMap.entrySet());
    }
}

这里是引用

2.哈希表的名字,也可以实现对数据的全部输出
import java.util.HashMap;
public class Hash {
    public static void main(String[] args) {
      HashMap<String,Double> hashMap=new HashMap<>(10);
      hashMap.put("apple",3.5);
      hashMap.put("organ",1.5);
      hashMap.put("bannda",7.5);
      System.out.println(hashMap);
    }
}

这里是引用

5.哈希表返回所有key值(keyset)

1.keySet();返回所有的key值
import java.util.HashMap;
public class Hash {
    public static void main(String[] args) {
      HashMap<String,Double> hashMap=new HashMap<>(10);
      hashMap.put("apple",3.5);
      hashMap.put("organ",1.5);
      hashMap.put("bannda",7.5);
      System.out.println(hashMap.keySet());
    }
}

这里是引用

6.判断哈希表是否为空(isempty)

1.isempty();判断是否为空,如果为空true,反之false

这里是引用

5.哈希表默认值选项(getOrDefault)

8.哈希表对象的复制添加(putAll)

1.putAll(hashMap); 哈希表的复制添加
2.如果在复制的时候,被添加的key值等于key值,会对被添加的值进行覆盖。
import java.util.HashMap;
public class Hash {
    public static void main(String[] args) {
      HashMap<String,Double> hashMap=new HashMap<>(10);
      hashMap.put("apple",3.5);
      hashMap.put("organ",1.5);
      hashMap.put("bannda",7.5);
    HashMap<String,Double> hashMap1=new HashMap<>(10);
      hashMap1.put("apple1",0.5);
      hashMap1.put("organ2",5.5);
      hashMap1.put("bannda",8.5);
//      将哈希集合2的对象全部添加到对象一中
      hashMap.putAll(hashMap1);
        System.out.println(hashMap.entrySet());
    }
}

这里是引用

9.哈希表的遍历(entrySet/keySet遍历法)

entrySet:
1.for(Map.Entry entry:要遍历的哈希对象.entrySet())
import java.util.HashMap;
import java.util.Map;
public class Hash {
    public static void main(String[] args) {
      HashMap<String,Double> hashMap=new HashMap<>(10);
      hashMap.put("apple",3.5);
      hashMap.put("organ",1.5);
      hashMap.put("bannda",7.5);
      for(Map.Entry entry:hashMap.entrySet()){
          System.out.println(entry.getKey()+" "+entry.getValue());
      }
    }
}

这里是引用

1.keySet遍历法:
Set<String> keys = hashMap.keySet();
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Hash {
    public static void main(String[] args) {
      HashMap<String,Double> hashMap=new HashMap<>(10);
      hashMap.put("apple",3.5);
      hashMap.put("organ",1.5);
      hashMap.put("bannda",7.5);

      Set<String> keys = hashMap.keySet();
      for (String key:keys){
          System.out.println(key+" "+hashMap.get(key));
      }
    }
}

这里是引用

10.哈希表的移除(remove)

remove(); 哈希表的移除操作。
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Hash {
    public static void main(String[] args) {
      HashMap<String,Double> hashMap=new HashMap<>(10);
      hashMap.put("apple",3.5);
      hashMap.put("organ",1.5);
      hashMap.put("bannda",7.5);
      hashMap.remove("apple");
        System.out.println(hashMap);
    }
}

这里是引用