今天刷LeetCode时忽然发现!原来,我写了那么久的数据结构C语言的实现,在Java中竟可直接调用!!Java yyds!!!
分模块写带麻烦了,直接把idea写好的代码粘过来一起学习Java中最常用的图——哈希图!!
package com;
import javafx.event.Event;
import java.util.HashMap;
import java.util.Locale;
public class ldy {
public static void main(String[] args){
HashMap<Integer,String> Site=new HashMap<Integer,String>();
Site.put(1,"Alibaba");
Site.put(2,"Runoob");
Site.put(3,"Taobao");
Site.put(4,"Zhihu");
Site.put(5,"Firefox");
System.out.println(Site);
//使用get方法进行获取
System.out.println("第三个数据是:"+Site.get(3));
//删除数据
Site.remove(4);
System.out.println("删除了数据后的哈希图:"+Site);
//计算大小
System.out.println("该哈希表存储元素的个数为:"+Site.size());
//使用keySet()方法进行迭代
for(Integer i:Site.keySet()){
System.out.println("Key:"+i+"value"+Site.get(i));
}
//返回所有value值
for(String value:Site.values()){
System.out.println(value+",");
}
//clone()一份哈希图
System.out.println("ClonHashMap:"+Site.clone());
//isEmpty()判空
boolean result ;
result= Site.isEmpty();
System.out.println("是否为空?"+result);
//putAll()将指定的所有键或数值插入进HashMap中
HashMap<Integer,String> Site2=new HashMap<>();
Site2.put(1,"Weibo");
Site2.put(4,"Wiki");
Site2.putAll(Site);
System.out.println("Site2 HashMap:"+Site2);
//putIfAbsent()如果该哈希图中不存在该值,则插入进该哈希图
Site.putIfAbsent(4,"Weibo");
Site.putIfAbsent(2,"Runoob");
System.out.println("更新后的哈希图为:"+Site);
//containsKey查找元素是否在图中
if(Site.containsKey(7)){
System.out.println("元素为7的元素在哈希图中!");
}else {
System.out.println("元素为7的元素不在哈希图中!");
}
//containsValue()
//replace()替换指定的key对应的value
String value = Site.replace(2,"Wiki");//将2对应的元素替换为Wiki
System.out.println("更新后的哈希图值为:"+Site);
//replaceAll()将 hashMap 中的所有映射关系替换成给定的函数所执行的结果。
//getOrDefault() 方法获取指定 key 对应对 value,如果找不到 key ,则返回设置的默认值。
String value1=Site.getOrDefault(1,"没有找到!");
System.out.println("元素1所对应的值:"+value1);
String value2 = Site.getOrDefault(8,"没有找到!");
System.out.println("元素8所对应的值"+value2);
//forEach() 方法用于对 HashMap 中的每个映射执行指定的操作。
HashMap<String, Integer> prices = new HashMap<>();
prices.put("Shoes", 200);
prices.put("Bag", 300);
prices.put("Pant", 150);
System.out.println("Normal Price: " + prices);
System.out.print("Discounted Price: ");
//通过 lambda 表达式使用 forEach()
prices.forEach((key, value3) -> {
// value 价格减少百分之 10
value3 = value3 - value3 * 10/100;
System.out.println(key + "=" + value3 + " ");
});
//entrySet() 方法返回映射中包含的映射的 Set 视图。
//判断元素是否出现,出现的话插入进去,否则添加
String returnedValue=Site.merge(10,"baidu",(oldValue,newValue) -> oldValue + newValue);//拉姆达法则
System.out.println("加入的元素为:"+returnedValue);
System.out.println("更新后的哈希图值为:"+Site);
//compute() 方法对 hashMap 中指定 key 的值进行重新计算
// int newPrice = prices.compute("Shoes",(key, value) -> value - value * 10/100);
//删除所有的键值
Site.clear();
Site2.clear();
System.out.println("删除了所有的元素后:"+Site);
System.out.println("删除了所有的元素后:"+Site2);
}
}
学艺不精,若有错误还请多多指教,谢谢。
JDK:Java 1.8
所使用IDE为:IDEA 2021.1 支持正版 无下载链接
推荐新手使用 JDK+文本编辑器 一个字一个字打出来的才是王道! ?
|