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

张掖市网站建设_网站建设公司_博客网站_seo优化

查询网站流量的网址,优化方案官方网站,机场建设网站,微信商城开店步骤一、增加for遍历集合 语法#xff1a; for(数据类型 变量名: 数组名或集合){​ }//集合遍历 #xff0c;推荐使用增加for 1.静态导入 注意事项#xff1a; 方法必须是静态注意不要和本类的方法同名#xff0c;如果同名#xff0c;记得加前缀#xff0c;由此可…一、增加for遍历集合 语法 for(数据类型 变量名: 数组名或集合){​ }//集合遍历 推荐使用增加for 1.静态导入 注意事项 方法必须是静态注意不要和本类的方法同名如果同名记得加前缀由此可见静态导入的方式意义不太 import static java.lang.Math.abs; import static java.lang.Math.max;public static void main(String[] args) {System.out.println(abs(-100));System.out.println(java.lang.Math.max(100,200));}2.可变参数 可变参数 定义时方法时不知道参数具体个数可以使用此技术 格式 修饰符 返回值 类型 方法名数据类型... 参数名{}// ... 表示是可变参数注意事项 可以了可变参数此变量相当于是一个数组如果方法里有多个参数其它包含可变参数那可变参数必须放在最后 3.数组转集合 Arrays.asList 此方法可以将数组转集合但是本质还是数组所以不能操作集合改变数组大小的方法 ListString list Arrays.asList(hello,world,java);System.out.println(list);System.out.println(list.get(0));//UnsupportedOperationException//list.add(java ee);list.set(1,hahaha);for(String str:list){System.out.println(str);}二、Set 接口 特点 不包含重复的元素无序指的是存数据 和取数据的顺序是否一致 1.HashSet子类 无序唯一性 2.HashSet 如何实现唯一性(看源码) HashSet 的底层是使用的HashMap 根据源码分析得到要保证HashSet里的元素的唯一性涉及到了Hash值 和equals方法 interface Collection{.... } interface Set extends Collection{... } class HashSet implements Set{// Collection 就相当于单身 Map 一对夫妻private transient HashMapE,Object map;public HashSet() {map new HashMap();}public boolean add(E e) {return map.put(e, PRESENT)null;} } class HashMap implements Map{final float loadFactor;static final float DEFAULT_LOAD_FACTOR 0.75f;public HashMap() {this.loadFactor DEFAULT_LOAD_FACTOR; // all other fields defaulted}public V put(K key, V value) {return putVal(hash(key), key, value, false, true);}final V putVal(int hash, K key, V value, boolean onlyIfAbsent,boolean evict) {NodeK,V[] tab; NodeK,V p; int n, i;if ((tab table) null || (n tab.length) 0)n (tab resize()).length;if ((p tab[i (n - 1) hash]) null)tab[i] newNode(hash, key, value, null);else {NodeK,V e; K k;if (p.hash hash ((k p.key) key || (key ! null key.equals(k))))e p;else if (p instanceof TreeNode)e ((TreeNodeK,V)p).putTreeVal(this, tab, hash, key, value);else {for (int binCount 0; ; binCount) {if ((e p.next) null) {p.next newNode(hash, key, value, null);if (binCount TREEIFY_THRESHOLD - 1) // -1 for 1sttreeifyBin(tab, hash);break;}if (e.hash hash ((k e.key) key || (key ! null key.equals(k))))break;p e;}}if (e ! null) { // existing mapping for keyV oldValue e.value;if (!onlyIfAbsent || oldValue null)e.value value;afterNodeAccess(e);return oldValue;}}modCount;if (size threshold)resize();afterNodeInsertion(evict);return null;} }自定义对象使用HashSet; 如果想实现当所有属性相同时认为是重复不添加 需要重写hashcode 和 equals 3.去重原理 HashSet 的底层是HashMap, hashMap的底层是哈希表数组和链表的结合 什么是哈希表呢 在JDK1.8之前哈希表底层采用数组链表实现即使用链表处理冲突同一hash值的链表都存储在一个链表里。但是当位于一个桶中的元素较多即hash值相等的元素较多时通过key值依次查找的效率较低。而JDK1.8中哈希表存储采用数组链表红黑树实现当链表长度超过阈值8时将链表转换为红黑树这样大大减少了查找时间。 简单的来说哈希表是由数组链表红黑树JDK1.8增加了红黑树部分实现的如下图所示。 看到这张图就有人要问了这个是怎么存储的呢 为了方便大家的理解我们结合一个存储流程图来说明一下 总而言之JDK1.8引入红黑树大程度优化了HashMap的性能那么对于我们来讲保证HashSet集合元素的唯一其实就是根据对象的hashCode和equals方法来决定的。如果我们往集合中存放自定义的对象那么保证其唯一就必须复写hashCode和equals方法建立属于当前对象的比较方式。 4.LinkedHashSet 子类 底层数据结构哈希表链表 保证了唯一性链表保存有序存储和取出是一致 LinkedHashSetString hs new LinkedHashSetString();hs.add(hello);hs.add(world);hs.add(java);hs.add(hello);for(String str :hs){System.out.println(str);}5.TreeSet 子类 特点排序 和唯一 排序 自然排序就是升序和比较器排序 public static void main(String[] args) {TreeSetInteger treeSet new TreeSetInteger();treeSet.add(66);treeSet.add(18);treeSet.add(12);treeSet.add(66);treeSet.add(77);for(Integer integer: treeSet){System.out.println(integer);}}三、Map体系 1.概述 现实生活中我们常会看到这样的一种集合IP地址与主机名身份证号与个人系统用户名与系统用户对象等这种一一对应的关系就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象即java.util.Map接口。 我们通过查看Map接口描述发现Map接口下的集合与Collection接口下的集合它们存储数据的形式不同如下图。 Collection中的集合元素是孤立存在的理解为单身向集合中存储元素采用一个个元素的方式存储。Map中的集合元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成通过键可以找对所对应的值。Collection中的集合称为单列集合Map中的集合称为双列集合。需要注意的是Map中的集合不能包含重复的键值可以重复每个键只能对应一个值。 2.Map接口中的常用方法 public V put(K key, V value): 把指定的键与指定的值添加到Map集合中。public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除返回被删除元素的值。public V get(Object key) 根据指定的键在Map集合中获取对应的值。boolean containsKey(Object key) 判断集合中是否包含指定的键。public SetK keySet(): 获取Map集合中所有的键存储到Set集合中。public SetMap.EntryK,V entrySet(): 获取到Map集合中所有的键值对对象的集合(Set集合)。 四、作业 HashMap 去存在自定义对象自定义对象做为键名 基础题 练习一Map接口的特点 一、请简述Map 的特点。 练习二Entry键值对对象 二、说出Entry键值对对象遍历Map集合的原理。 练习三Map接口中的常用方法 三、请使用Map集合的方法完成添加元素根据键删除以及根据键获取值操作。 练习四Map接口中的方法 四、往一个Map集合中添加若干元素。获取Map中的所有value并使用增强for和迭代器遍历输出每个value。 练习五HashMap存储键是自定义对象值是String 五、请使用Map集合存储自定义数据类型Car做键对应的价格做值。并使用keySet和entrySet两种方式遍历Map集合。 练习六Map集合的使用一 六、现在有一个map集合如下 MapInteger,String map new HashMapInteger, String(); map.put(1, “张三丰”); map.put(2, “周芷若”); map.put(3, “汪峰”); map.put(4, “灭绝师太”); 要求 1.遍历集合并将序号与对应人名打印。 2.向该map集合中插入一个编码为5姓名为李晓红的信息 ​ 3.移除该map中的编号为1的信息 ​ 4.将map集合中编号为2的姓名信息修改为周林 练习七Map集合的使用二 七、有2个数组第一个数组内容为[黑龙江省,浙江省,江西省,广东省,福建省]第二个数组为[哈尔滨,杭州,南昌,广州,福州]将第一个数组元素作为key第二个数组元素作为value存储到Map集合中。如{黑龙江省哈尔滨, 浙江省杭州, …}。
http://www.lebaoying.cn/news/74640.html

相关文章:

  • 那些外贸网站个人可以做广州最发达的五个区
  • 网站做好了怎么做后台天津智能网站建设
  • 销售型企业网站有哪些wordpress 代码结构
  • 邯郸企业建网站建设通网站怎么投诉
  • 网站建设验收内容app开发公司价格
  • 广西网站建设工具汕头建设网站
  • 正中路桥建设发展有限公司网站做导航网站有发展吗
  • 西安网站建设第一品牌最新军事新闻视频在线观看
  • 北京招聘网站建设wordpress账号密码在哪个文件下
  • 校园网站建设实施方案上海网站代优化
  • 洪梅网站仿做wordpress 数据表前缀
  • 嘉兴网站建设方案专做情侣装网站
  • 浙江住房城乡建设厅网站首页一个阿里云怎么做两个网站
  • 软文素材网站wordpress防站
  • 怎样注册免费网站一个上线的网站需要怎么做
  • 代做网站公司有哪些seo短视频网页入口引流免费
  • 海南省住建设厅网站报监的工程网站logo图怎么做
  • 高端大气的网站制作三亚兼职招聘信息网站
  • 丹东网站开发公司广州企业建站网站
  • 怎么看一个网站谁做的优化怎么获取免费的网站域名
  • 黄石网站建设推荐海外人才招聘网
  • 现在有没有免费的网站WordPress 百度 主动
  • 物流网站建设策划书怎样做婚恋网站
  • 网站建设 我们是专业的只做美食类目产品的网站
  • 网站建设英文怎么说无锡网站建设运营
  • 北京示范校建设网站微信招聘网站建设
  • 抄袭别人网站网站做网站广告
  • 手机网站建设制作教程三门峡市湖滨区建设局网站
  • 为网站网站做宣传wordpress主题使用加
  • 网站建设实战李静检查wordpress主题