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

贵州省建设厅的网站广州达美网站建设公司

贵州省建设厅的网站,广州达美网站建设公司,网站验收技术指标,深圳南头高端网站建设八. 核心类库 1. ArrayList 数组缺点 ArrayList#xff0c;它常常被用来替代数组 数组的缺点#xff1a;不能自动扩容#xff0c;比如已经创建了大小为 5 的数组#xff0c;再想放入一个元素#xff0c;就放不下了#xff0c;需要创建更大的数组#xff0c;还得把旧…八. 核心类库 1. ArrayList 数组缺点 ArrayList它常常被用来替代数组 数组的缺点不能自动扩容比如已经创建了大小为 5 的数组再想放入一个元素就放不下了需要创建更大的数组还得把旧数组的元素迁移过去。 自己来做比较麻烦 public class TestArray {public static void main(String[] args) {String[] arr0 new String[]{a, b, c, d, e};String[] arr1 new String[6];for (int i 0; i arr0.length; i) {arr1[i] arr0[i];}arr1[5] f;System.out.println(Arrays.toString(arr0));System.out.println(Arrays.toString(arr1));} }想看数组内所有元素循环遍历依次打印是一个办法用 Arrays.toString 方法是更简单的办法 ArrayList 自动扩容 这时可以使用 ArrayList 来替代 String[]它的内部仍然是数组只是封装了更多实用的逻辑 ArrayList list new ArrayList(5); // 指定初始容量为 5, 如果不指定默认是 10 list.add(a); list.add(b); list.add(c); list.add(d); list.add(e);// 不用担心容量不够, 它内部封装了扩容的逻辑, 每次按原来容量的 1.5 扩容, 向下取整, 如 5-7-10 list.add(f); System.out.println(list);ArrayList 每次扩容后会预留一些空位避免了频繁扩容封装带来的问题是看不到内部的结构没关系可以使用 debug 工具来调试 Debug 调试 前面说了ArrayList 封装了扩容逻辑这对使用者当然是一件好事就像我们平时使用家用电器似的不需要知道这些电器内部如何工作只需要会按它们对外的几个开关、按钮就足够了。像这个 ArrayList我们只需要会创建对象调用它的add方法就够用了不需要看它内部结构 不过呢有利必然有弊比如你想观察验证它的扩容规则是不是真的是如我所说的 1.5 倍封装就会带来障碍。这里交给大家一招深入对象内部探究它组成结构的好办法debug 调试。 debug 的第一步要添加断点所谓断点就是让代码运行到断点处先停下来不要向下走了这样就能方便我们观察对象状态。在 18 行加一个断点然后记得用调试模式运行代码 要查看 list 的详情先按照下图进行选择查看方式 这样就可以观察 list 的内部结构了 ArrayList 遍历与泛型 List 的遍历有多种办法这里只介绍最简单的一种 for (Object e : list) {System.out.println(e); }// 与之对比, 数组也能类似方式进行遍历 for (String s : arr0) {System.out.println(s); }这种遍历称之为增强 for 循环 上例中的 list 是把元素当作 Object 加入到它的内部再取出来也会当作 Object有时候就会不方便 例如 list 里放的都是整数想做个累加 可以用泛型来限制元素的存取类型例如 ArrayListString 专门存取字符串类型元素ArrayListInteger 专门存取整数类型元素 List 中只能存引用类型不能直接存基本类型 例如 ArrayListInteger list new ArrayListInteger(5); list.add(1); list.add(2); list.add(3); list.add(4); // 按 Integer 存int sum 0; for (Integer i : list) { // 按 Integer 取sum i; }System.out.println(sum);其中等式右边的 String 可以简化为 List 接口 #mermaid-svg-BITzpDEAYIwUljze {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-BITzpDEAYIwUljze .error-icon{fill:#552222;}#mermaid-svg-BITzpDEAYIwUljze .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-BITzpDEAYIwUljze .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-BITzpDEAYIwUljze .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-BITzpDEAYIwUljze .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-BITzpDEAYIwUljze .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-BITzpDEAYIwUljze .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-BITzpDEAYIwUljze .marker{fill:#333333;stroke:#333333;}#mermaid-svg-BITzpDEAYIwUljze .marker.cross{stroke:#333333;}#mermaid-svg-BITzpDEAYIwUljze svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-BITzpDEAYIwUljze g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-BITzpDEAYIwUljze g.classGroup text .title{font-weight:bolder;}#mermaid-svg-BITzpDEAYIwUljze .nodeLabel,#mermaid-svg-BITzpDEAYIwUljze .edgeLabel{color:#131300;}#mermaid-svg-BITzpDEAYIwUljze .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-BITzpDEAYIwUljze .label text{fill:#131300;}#mermaid-svg-BITzpDEAYIwUljze .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-BITzpDEAYIwUljze .classTitle{font-weight:bolder;}#mermaid-svg-BITzpDEAYIwUljze .node rect,#mermaid-svg-BITzpDEAYIwUljze .node circle,#mermaid-svg-BITzpDEAYIwUljze .node ellipse,#mermaid-svg-BITzpDEAYIwUljze .node polygon,#mermaid-svg-BITzpDEAYIwUljze .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-BITzpDEAYIwUljze .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-BITzpDEAYIwUljze g.clickable{cursor:pointer;}#mermaid-svg-BITzpDEAYIwUljze g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-BITzpDEAYIwUljze g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-BITzpDEAYIwUljze .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-BITzpDEAYIwUljze .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-BITzpDEAYIwUljze .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-BITzpDEAYIwUljze .dashed-line{stroke-dasharray:3;}#mermaid-svg-BITzpDEAYIwUljze #compositionStart,#mermaid-svg-BITzpDEAYIwUljze .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-BITzpDEAYIwUljze #compositionEnd,#mermaid-svg-BITzpDEAYIwUljze .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-BITzpDEAYIwUljze #dependencyStart,#mermaid-svg-BITzpDEAYIwUljze .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-BITzpDEAYIwUljze #dependencyStart,#mermaid-svg-BITzpDEAYIwUljze .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-BITzpDEAYIwUljze #extensionStart,#mermaid-svg-BITzpDEAYIwUljze .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-BITzpDEAYIwUljze #extensionEnd,#mermaid-svg-BITzpDEAYIwUljze .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-BITzpDEAYIwUljze #aggregationStart,#mermaid-svg-BITzpDEAYIwUljze .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-BITzpDEAYIwUljze #aggregationEnd,#mermaid-svg-BITzpDEAYIwUljze .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-BITzpDEAYIwUljze .edgeTerminals{font-size:11px;}#mermaid-svg-BITzpDEAYIwUljze :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} «interface» Collection «interface» List ArrayList List12 ListN ArrayList 是 List 接口的一个实现类除它以外还有 List12 和 ListN 等实现类 List.of();Java 9 中引入的新特性的特点是一旦 list 中元素确定就不能再向 list 添加、移除元素 ListInteger list2 List.of(1, 2, 3, 4); System.out.println(list2.getClass()); // class java.util.ImmutableCollections$ListNListInteger list3 List.of(1, 2); System.out.println(list3.getClass()); // class java.util.ImmutableCollections$List12of 方法隐藏了内部实现细节对于使用者不需要关心对象的实际类型。 要是真想知道这个对象的类型是什么可以不可以用继承自 Object 的 getClass 方法获得对象的真正类型 2. HashMap String[] 和 ArrayListString 都有一个缺点查找其中某个元素不高效例如 public static String find1(String value) {String[] array new String[]{小明, 小白, 小黑};for (String s : array) {if (s.equals(value)) {return s;}}return null; }public static String find2(String value) {ListString list List.of(小明, 小白, 小黑);for (String s : list) {if (s.equals(value)) {return s;}}return null; }可以想象如果集合大小为 n而要查找的元素是最后一个需要比较 n 次才能找到元素 Map #mermaid-svg-aQnY0yAUOPpgA4Ct {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-aQnY0yAUOPpgA4Ct .error-icon{fill:#552222;}#mermaid-svg-aQnY0yAUOPpgA4Ct .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-aQnY0yAUOPpgA4Ct .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-aQnY0yAUOPpgA4Ct .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-aQnY0yAUOPpgA4Ct .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-aQnY0yAUOPpgA4Ct .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-aQnY0yAUOPpgA4Ct .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-aQnY0yAUOPpgA4Ct .marker{fill:#333333;stroke:#333333;}#mermaid-svg-aQnY0yAUOPpgA4Ct .marker.cross{stroke:#333333;}#mermaid-svg-aQnY0yAUOPpgA4Ct svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-aQnY0yAUOPpgA4Ct .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-aQnY0yAUOPpgA4Ct .cluster-label text{fill:#333;}#mermaid-svg-aQnY0yAUOPpgA4Ct .cluster-label span{color:#333;}#mermaid-svg-aQnY0yAUOPpgA4Ct .label text,#mermaid-svg-aQnY0yAUOPpgA4Ct span{fill:#333;color:#333;}#mermaid-svg-aQnY0yAUOPpgA4Ct .node rect,#mermaid-svg-aQnY0yAUOPpgA4Ct .node circle,#mermaid-svg-aQnY0yAUOPpgA4Ct .node ellipse,#mermaid-svg-aQnY0yAUOPpgA4Ct .node polygon,#mermaid-svg-aQnY0yAUOPpgA4Ct .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-aQnY0yAUOPpgA4Ct .node .label{text-align:center;}#mermaid-svg-aQnY0yAUOPpgA4Ct .node.clickable{cursor:pointer;}#mermaid-svg-aQnY0yAUOPpgA4Ct .arrowheadPath{fill:#333333;}#mermaid-svg-aQnY0yAUOPpgA4Ct .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-aQnY0yAUOPpgA4Ct .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-aQnY0yAUOPpgA4Ct .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-aQnY0yAUOPpgA4Ct .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-aQnY0yAUOPpgA4Ct .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-aQnY0yAUOPpgA4Ct .cluster text{fill:#333;}#mermaid-svg-aQnY0yAUOPpgA4Ct .cluster span{color:#333;}#mermaid-svg-aQnY0yAUOPpgA4Ct div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-aQnY0yAUOPpgA4Ct :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} bright 小明 white 小白 black 小黑 什么是 Map 呢很简单它就是一组映射关系。 你看刚才的例子中是建立了数组索引和数据元素之间的映射关系根据索引快速找到元素。现在 map 也是一组映射关系只是把索引变得更有意义而已。用 bright 映射小明white 映射小白black 映射小黑前面的 bright、white、black 称之为 key key 需要唯一 后面这些称之为 value 代码如下 public static String find3(String key) {MapString, String map Map.of(bright, 小明,white, 小白,black, 小黑);return map.get(key); }Map 需要掌握的点 可以用泛型限制 Map 中 key 和 value 的类型Map.of 用来创建不可变的 Map即初始时确定了有哪些 key 和 value之后就不能新增或删除了 根据 key 获取 value用 get(key) 方法 如果想创建可变的 Map用 new HashMap() 存入新的 keyvalue用 put(key, value) 方法 遍历 Map 也有多种方法这里介绍一种相对好用的 for (Map.EntryString, String e : map.entrySet()) {// e.getKey() 获取 key// e.getValue() 获取 value }其中 Map.Entry 代表一对儿 keyvaluemap.entrySet() 方法来获取所有的 entry增put(key,value)删remove(key)改put(key,value)查get(key)e.getKey() 获取 keye.getValue() 获取 value
http://www.pierceye.com/news/547017/

相关文章:

  • 微信公众号手机网站开发文成网站制作
  • 中邮通建设咨询有限公司官方网站网站升级及政务新媒体建设方案
  • 网站建设服务费会计分录宁波市住房与城乡建设部网站
  • 如何申请cn域名做网站wordpress 企业网站主题
  • 网站建设 锋云科技公司东莞有什么比较好的网站公司
  • json取数据做网站做问卷哪个网站好
  • 做特产网站的原因手机网站建设技术
  • 唐山企业网站建设公司wordpress 插件 破解
  • 西安自助建站系统做360网站快速排名软件
  • 青岛响应式网站设计规划排版网站
  • 吉林省住房和建设厅网站免费的海报设计软件
  • 求创意设计分享的网站做国产免费视频网站
  • 易橙云做的网站怎么样做网站的设计理念
  • 费县住房和城乡建设局网站谷歌找网站后台
  • 青岛网站建设最便宜应用商城app下载
  • 陕西省建设部官方网站青岛网站制作案例
  • 珠海中国建设银行招聘信息网站刘金鹏做网站
  • 广州住房建设部网站php学校网站建设
  • 企业网站建设顾问网站美工做专题尺寸多少
  • 第一代网站建设技术网站建设前期规划方案范文
  • 网站建设基础心得蓝色的包装材料企业网站模板
  • thinkphp网站开发实战教程做厂房出租有那些推广网站
  • 怎么设自己的网站wordpress后台登陆很慢
  • 响水做网站网站方案书什么东西
  • 青岛seo网站排名优化wordpress页面伪静态
  • 汕尾东莞网站建设wordpress 反斜杠
  • 免费养殖网站模板jquery 的网站模板下载地址
  • 东莞市手机网站建设wordpress异步上传图片
  • 网站阵地建设管理郑州做网站多少钱
  • 自建站平台官方网站建设手机银行