当前位置: 首页 > news >正文

企业网站合同cms网站建设方案

企业网站合同,cms网站建设方案,移动端的网站怎么做的,wordpress模板最多使用通过之前的学习我们知道Map是一个双列集合,就是以键值对的形式进行数据存储 java进阶—集合 Map 下面有 三个子接口,HashMap , HashTable 以及 TreeMap 提醒一点:Map不是Collection下的集合,Collection是单列集合&am…

通过之前的学习我们知道Map是一个双列集合,就是以键值对的形式进行数据存储 java进阶—集合

Map 下面有 三个子接口,HashMap , HashTable 以及 TreeMap

提醒一点:Map不是Collection下的集合,Collection是单列集合(List,Set)

Map 的存储方式跟 list ,set 是不一样的,先来看看他的基本结构长什么样


Map<String,String> resultMap = new HashMap<>(3);

泛型里面,贴的标签是 键值对的类型 ,<键,值> ,括号里面的3 是设置这个Map 容器的大小 ,开发中一定要设置map的初始化大小,具体多少按需求而定

接下来我们一个一个来看

HashMap

可以说HashMap在开发中最常用,代码中随处可见,创建也很简单,new 一个 ,一样的集合创造出来了,不用就浪费了

  1. 添加(put)
Map<String,String> resultMap = new HashMap<>(3);resultMap.put("1号","去玩");resultMap.put("2号","去吃");resultMap.put("3号","睡觉");
  1. 移除(remove)

remove 是根据key 移除 value

  Map<String, String> resultMap = new HashMap<>(3);resultMap.put("1号", "去玩");resultMap.put("2号", "去吃");resultMap.put("3号", "睡觉");resultMap.remove("1号");
  1. 是否存在这个Key(containsKey)
Map<String, String> resultMap = new HashMap<>(3);resultMap.put("1号", "去玩");resultMap.put("2号", "去吃");resultMap.put("3号", "睡觉");boolean flag = resultMap.containsKey("3号");System.out.println(flag);

在这里插入图片描述

  1. 是否存在这个Value(containsValue)

Map<String, String> resultMap = new HashMap<>(3);resultMap.put("1号", "去玩");resultMap.put("2号", "去吃");resultMap.put("3号", "睡觉");boolean flag = resultMap.containsValue("上班");System.out.println(flag);

在这里插入图片描述
4. 判断集合是否为空(isEmpty)

   Map<String, String> resultMap = new HashMap<>(3);resultMap.put("1号", "去玩");resultMap.put("2号", "去吃");resultMap.put("3号", "睡觉");boolean flag = resultMap.isEmpty();System.out.println(flag);

在这里插入图片描述
5. 获取集合大小(size)

Map<String, String> resultMap = new HashMap<>(3);resultMap.put("1号", "去玩");resultMap.put("2号", "去吃");resultMap.put("3号", "睡觉");int size = resultMap.size();System.out.println(size);

在这里插入图片描述
6. 遍历

map集合遍历这边介绍三种方式

entrySet (推荐使用)

 for (Map.Entry<String, String> entry : resultMap.entrySet()) {System.out.println(entry.getKey()+entry.getValue());}

在这里插入图片描述
keySet (不要使用,效率很低)

 Map<String, String> resultMap = new HashMap<>(3);resultMap.put("1号", "去玩");resultMap.put("2号", "去吃");resultMap.put("3号", "睡觉");for (String s : resultMap.keySet()) {System.out.println("key="+s+"...."+"value="+resultMap.get(s));}

在这里插入图片描述

jdk1.8 forEach

  Map<String, String> resultMap = new HashMap<>(3);resultMap.put("1号", "去玩");resultMap.put("2号", "去吃");resultMap.put("3号", "睡觉");resultMap.forEach((k, v) -> {System.out.println(k+"..."+v);});

在这里插入图片描述
我们来做个实验,看看哪种遍历效率更高

我们先造100W的数据

int count = 1000000;long start = System.currentTimeMillis();Map<String, String> resultMap = new HashMap<>(count);for (int i = 1; i <= count; i++) {resultMap.put(i + "", i + " ---> map");}//效率对比,装载Map耗时System.out.println("装载map耗时: "+(System.currentTimeMillis()-start)+ " ms");//用entrySetstart = System.currentTimeMillis();for (Map.Entry<String, String> entry : resultMap.entrySet()) {String key = entry.getKey();String value = entry.getValue();}System.out.println("用entrySet 遍历 map耗时: "+(System.currentTimeMillis()-start)+ " ms");//用keySetstart = System.currentTimeMillis();for (String s : resultMap.keySet()) {String key = s;String  value = resultMap.get(s);}System.out.println("用keySet 遍历 map耗时: "+(System.currentTimeMillis()-start)+ " ms");//用forEachstart = System.currentTimeMillis();resultMap.forEach((k, v) -> {String key  = k;String value = v;});System.out.println("用forEach 遍历 map耗时: "+(System.currentTimeMillis()-start)+ " ms");

输出

在这里插入图片描述
可以看到,entrySet效率是最高的 forEach 效率是最低的

当我们把数据调整到1000W时

int count = 10000000;long start = System.currentTimeMillis();Map<String, String> resultMap = new HashMap<>(count);for (int i = 1; i <= count; i++) {resultMap.put(i + "", i + " ---> map");}//效率对比,装载Map耗时System.out.println("装载map耗时:"+(System.currentTimeMillis()-start)+ " ms");//用entrySetstart = System.currentTimeMillis();for (Map.Entry<String, String> entry : resultMap.entrySet()) {String key = entry.getKey();String value = entry.getValue();}System.out.println("用entrySet 遍历 map耗时:"+(System.currentTimeMillis()-start)+ " ms");//用keySetstart = System.currentTimeMillis();for (String s : resultMap.keySet()) {String key = s;String  value = resultMap.get(s);}System.out.println("用keySet 遍历 map耗时:"+(System.currentTimeMillis()-start)+ " ms");//用forEachstart = System.currentTimeMillis();resultMap.forEach((k, v) -> {String key  = k;String value = v;});System.out.println("用forEach 遍历 map耗时:"+(System.currentTimeMillis()-start)+ " ms");

输出结果:

在这里插入图片描述
entrySet 的效率依然是最高的,foreach这边效率跟entry差不多了

将数据 换成1500W

int count = 15000000;long start = System.currentTimeMillis();Map<String, String> resultMap = new HashMap<>(count);for (int i = 1; i <= count; i++) {resultMap.put(i + "", i + " ---> map");}//效率对比,装载Map耗时System.out.println("装载map耗时:"+(System.currentTimeMillis()-start)+ " ms");//用entrySetstart = System.currentTimeMillis();for (Map.Entry<String, String> entry : resultMap.entrySet()) {String key = entry.getKey();String value = entry.getValue();}System.out.println("用entrySet 遍历 map耗时:"+(System.currentTimeMillis()-start)+ " ms");//用keySetstart = System.currentTimeMillis();for (String s : resultMap.keySet()) {String key = s;String  value = resultMap.get(s);}System.out.println("用keySet 遍历 map耗时:"+(System.currentTimeMillis()-start)+ " ms");//用forEachstart = System.currentTimeMillis();resultMap.forEach((k, v) -> {String key  = k;String value = v;});System.out.println("用forEach 遍历 map耗时:"+(System.currentTimeMillis()-start)+ " ms");

在这里插入图片描述
可以看到forEach的效率是最高的,keySet 效率一直很低

总结: 对map进行遍历,建议使用 entrySet,数据量很庞大,千万级别,建议用forEach ,keySet不要用

HashTable

HashTable 不建议使用,就跟vector 跟arrayList 一样 ,其主要一个原因就是线程安全(这是个优点),但是它效率低

TreeMap

treeMap中的元素默认是按照key来进行自然排序的

对Integer来说,其自然排序就是数字的升序

对String来说,其自然排序就是按照字母表排序

主要体现在他的构造


public class TreeMap<K,V>
extends AbstractMap<K,V>
implements NavigableMap<K,V>, Cloneable, Serializable

来看代码:

TreeMap<Integer, String> treeMap = new TreeMap<>();treeMap.put(1,"1号");treeMap.put(7,"7号");treeMap.put(6,"6号");treeMap.put(3,"3号");for (Map.Entry<Integer, String> entry : treeMap.entrySet()) {System.out.println(entry.getKey()+"...."+entry.getValue());}

打印结果:

在这里插入图片描述
【最后来一个例子,加深对map集合的使用】

创建三个学生,有属性(姓名,年龄),给每个学生定义上整形编号, 保存在map中,并且遍历输出学生编号,姓名,年龄

public class Person {private String name;private Integer age;public Person(String name, Integer age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}
}
public static void main(String[] args) {Map<Integer, Person> treeMap = new HashMap<>(3);treeMap.put(1,new Person("zhangsan",18));treeMap.put(3,new Person("lisi",20));treeMap.put(4,new Person("wangwu",30));for (Map.Entry<Integer, Person> entry : treeMap.entrySet()) {System.out.println("编号:"+entry.getKey()+",姓名:"+entry.getValue().getName()+",年龄:"+entry.getValue().getAge());}}

执行结果:

在这里插入图片描述

http://www.yayakq.cn/news/29333/

相关文章:

  • 北京网站建设中企云达网站开发技能有哪些
  • 做网站推广方法有哪些医院网站建设意义
  • 网站验证码体验青岛建站服务
  • 公司网站建设策划网站建设logo
  • 热水工程技术支持 东莞网站建设网站备案 法人变更
  • 个人餐饮网站模板网红营销的作用
  • 哪里可以做营销型网站补肾壮阳吃什么药效果好
  • 做头像网站有哪些长沙网站排名报价
  • div使用太多影响网站收录wordpress注册不成功
  • 江苏两学一做网站品牌定位的七个步骤
  • ui设计大专好就业吗大连做网站优化哪家好
  • 烟台装修公司网站建设广州网页设计师工资一般多少
  • 郑州正岩建设集团网站怎么更改wordpress的后台路径
  • 哈尔滨高端网站建设淘宝拍卖网官网首页
  • 网站注册转化率wordpress首页图片
  • 化妆品网站建设目标与期望seo人员工作内容
  • 网站推广软件推荐wordpress用户密码加密算法
  • 做淘宝返利网站能挣钱怎么做物流网站
  • 网站建设属于技术开发吗wordpress 菜单添加图片
  • 软工毕设做网站安阳做网站
  • 郑州汉狮哪家做网站好网站查询域名ip查询
  • 手机在线制作表白网站买卖域名的网站好
  • 学校网站cmspckr wordpress
  • 企业建设网站注意点瑞华特散热器网站谁给做的
  • 优惠券网站怎么做网页设计培训哪家正规
  • 酒店网站开发方案绍兴企业网站推广
  • 猪八戒网站建设公司统计局门户网站建设目标
  • 东莞网站seo技术前端开发是做网站的吗
  • 一站式服务英文IT科技资讯新闻类织梦网站模板
  • 如何高效率的建设网站wordpress中的全站链接怎么改