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

合肥电子商务网站建设个人证书查询网入口免费

合肥电子商务网站建设,个人证书查询网入口免费,网站备案有哪些资料,青岛网上房地产查询系统前置#xff1a;问题 判空集合转map集合遍历集合去重集合转数组数组转集合 一#xff1a;集合判空 《阿里巴巴 Java 开发手册》的描述如下#xff1a; 判断所有集合内部的元素是否为空#xff0c;使用 isEmpty() 方法#xff0c;而不是 size()0 的方式。 我们在开发中也…前置问题 判空集合转map集合遍历集合去重集合转数组数组转集合 一集合判空 《阿里巴巴 Java 开发手册》的描述如下 判断所有集合内部的元素是否为空使用 isEmpty() 方法而不是 size()0 的方式。 我们在开发中也常用Spring提供的CollectionUtil.isEmpty(list) // ConcurrentHashMap 的 size() 方法和 isEmpty() 方法的源码。 public int size() {long n sumCount();return ((n 0L) ? 0 :(n (long)Integer.MAX_VALUE) ? Integer.MAX_VALUE :(int)n); } final long sumCount() {CounterCell[] as counterCells; CounterCell a;long sum baseCount;if (as ! null) {for (int i 0; i as.length; i) {if ((a as[i]) ! null)sum a.value;}}return sum; } public boolean isEmpty() {return sumCount() 0L; // ignore transient negative values }Spring中的源码 // 判null判内容 public static boolean isEmpty(Nullable Collection? collection) {return (collection null || collection.isEmpty());}Spring底层是直接使用isEmpty进行判空的。 这是因为 isEmpty() 方法的可读性更好并且时间复杂度为 O(1)。 绝大部分我们使用的集合的 size() 方法的时间复杂度也是 O(1)不过也有很多复杂度不是 O(1) 的比如 java.util.concurrent 包下的某些集合ConcurrentLinkedQueue\ConcurrentHashMap…出于时间复杂度的考虑 二集合转Map 《阿里巴巴 Java 开发手册》的描述如下 在使用 java.util.stream.Collectors 类的 toMap() 方法转为 Map 集合时一定要注意当 value 为 null 时会抛 NPE 异常。 class Dog {private String id;private String sex; }ListDog list new ArrayList(); list.add(new Dog(1212121,公)); // value为null值会报npe list.add(new Dog(435,null)); // 空指针异常 list.stream().collect(Collectors.toMap(Dog::getId, Dog::getSex)); 异常原因 value判空 集合遍历 《阿里巴巴 Java 开发手册》的描述如下 不要在 foreach 循环里进行元素的 remove/add 操作(这个问题我踩过坑和你想删的东西绝对不一样)。remove 元素请使用 Iterator 方式如果并发操作需要对 Iterator 对象加锁。 通过反编译你会发现 foreach 语法底层其实还是依赖 Iterator 。不过 remove/add 操作直接调用的是集合自己的方法而不是 Iterator 的 remove/add方法 这就导致 Iterator 莫名其妙地发现自己有元素被 remove/add 然后它就会抛出一个 ConcurrentModificationException 来提示用户发生了并发修改异常。这就是单线程状态下产生的 fail-fast 机制。 Java8之后使用removeIf ListInteger list new ArrayList(); for (int i 1; i 10; i) {list.add(i); } // 这个蛮好用的 list.removeIf(filter - filter % 2 0); /* 删除list中的所有偶数 */ System.out.println(list); /* [1, 3, 5, 7, 9] */集合去重 《阿里巴巴 Java 开发手册》的描述如下 可以利用 Set 元素唯一的特性可以快速对一个集合进行去重操作避免使用 List 的 contains() 进行遍历去重或者判断包含操作。 // Set 去重代码示例// 无hash冲突时时间复杂度O1 public static T SetT removeDuplicateBySet(ListT data) {if (CollectionUtils.isEmpty(data)) {return new HashSet();}return new HashSet(data); }// List 去重代码示例//时间复杂度On 跟进去看contains方法就可以看出来 public static T ListT removeDuplicateByList(ListT data) {if (CollectionUtils.isEmpty(data)) {return new ArrayList();}ListT result new ArrayList(data.size());for (T current : data) {if (!result.contains(current)) {result.add(current);}}return result; }// testMyListInteger integers Arrays.asList(1, 1, 1, 12, 32, 32, 3245, 3123, 6, 6);// 推荐去重方式HashSetInteger integers1 new HashSet(integers);System.out.println(JSON.toJSONString(integers1));集合转数组 《阿里巴巴 Java 开发手册》的描述如下 使用集合转数组的方法必须使用集合的 toArray(T[] array)传入的是类型完全一致、长度为 0 的空数组。 toArray(T[] array) 方法的参数是一个泛型数组如果 toArray 方法中没有传递任何参数的话返回的是 Object类 型数组。 String [] s new String[]{dog, lazy, a, over, jumps, fox, brown, quick, A }; ListString list Arrays.asList(s); Collections.reverse(list); //没有指定类型的话会报错 slist.toArray(new String[0]); 由于 JVM 优化new String[0]作为Collection.toArray()方法的参数现在使用更好new String[0]就是起一个模板的作用指定了返回数组的类型0 是为了节省空间因为它只是为了说明返回的类型。详见https://shipilev.net/blog/2016/arrays-wisdom-ancients/ 数组转集合 《阿里巴巴 Java 开发手册》的描述如下 使用工具类 Arrays.asList() 把数组转换成集合时不能使用其修改集合相关的方法 它的 add/remove/clear 方法会抛出 UnsupportedOperationException 异常。 Arrays.asList()在平时开发中还是比较常见的我们可以使用它将一个数组转换为一个 List 集合。 String[] myArray {Apple, Banana, Orange}; ListString myList Arrays.asList(myArray); //上面两个语句等价于下面一条语句 ListString myList Arrays.asList(Apple,Banana, Orange); JDK源码 /***返回由指定数组支持的固定大小的列表。此方法作为基于数组和基于集合的API之间的桥梁* 与 Collection.toArray()结合使用。返回的List是可序列化并实现RandomAccess接口。*/ public static T ListT asList(T... a) {return new ArrayList(a); }
http://www.hkea.cn/news/14411914/

相关文章:

  • 旅游网站建设的目的网站安全
  • 音乐图书馆网站建设seo排名优化公司
  • 做国际网站要多少钱wordpress js放到oss
  • 网站跳转怎么办原创服装设计师
  • 网站怎么做多级菜单网站开发费用税
  • 网站关键词排名消失陕西百度公司
  • 牡丹江3d网站开发网站备案期间可以建站
  • 网站架构分析阳泉购物网站开发设计
  • wordpress能大网站主题flash网站与html5
  • 网站建设uuluoyuan个人网页制作
  • 网站建设实践论文上海好的网站设计公司有哪些
  • 向国外支付网站开发费wordpress总结
  • 更改网站名字wordpress主题 贴吧
  • 有了源码然后如何做网站英雄联盟手游小程序被投诉
  • 网站开发广东扬州建设企业网站
  • 网站开发完没人运营平度网站整站优化外包公司
  • gateface做网站怎么让做的网站赚钱吗
  • 专业网站建设找哪家好优化系统是什么意思
  • 如何解决网站只收录首页的一些办法数据处理网站开发
  • 帝国cms更改网站ico站外推广内容策划
  • 建设大型网站制作品牌亚马逊关键词排名查询工具
  • 东营 网站建设推广网站和品牌网站的区别
  • 笑话网站代码怎样在网上做推广
  • 网站开发团队html表格制作代码
  • 个人网站备案可以填几个域名做土地租赁买卖的网站有哪些
  • 做果盘网站科技感网页模板
  • 网站建设合同范本-经过律师审核软文发稿平台
  • 广安网站seo亚马逊跨境电商个人开店
  • 做网站前期了解客户什么需求无锡优化网站费用
  • wordpress后台错位网站的优化