java

作者: 极客_Ls | 来源:发表于2020-05-27 17:14 被阅读0次
Map
  1. 当循环中只需要 Map 的主键时,迭代 keySet() 是正确的。但是,当需要主键和取值时,迭代 entrySet() 才是更高效的做法,比先迭代 keySet() 后再去 get 取值性能更佳
 HashMap<String, String> map = new HashMap<>();
       map.put("name", "lhh");
       map.put("tel", "15717085241");
       System.out.println(map.values());
       for (Map.Entry<String, String> entry : map.entrySet()) {
           System.out.println(entry.getKey() + "\t"  + entry.getValue());
       }
Collection
  1. 使用Conllection.isEmpty 判断是否有内容,而不是Conllection.size()
 Collection<Object> collection = new ArrayList<>();
 System.out.println(collection.isEmpty() ? "空" : collection.size());
  1. 如果需要还需要检测 null ,可采用:
    • CollectionUtils.isEmpty(collection)
    • CollectionUtils.isNotEmpty(collection)
Collection<Object> collection0 = null;
System.out.println(CollectionUtils.isEmpty(collection0));
System.out.println(CollectionUtils.isNotEmpty(collection0));
  1. 尽量在集合初始化时指定集合的大小和泛型
Collection<String> collection = new ArrayList<>(initialCapacity);
  1. 频繁调用 Collection.contains 方法请使用 Set
Set<Object> set = new HashSet<Object>(collection);
set.contains(key);

String

  1. 字符串拼接使用 StringBuilder
// 經測試,使用String拼接1-10000 用時1909ms ,StringBuilder用時10ms 
// 其中使用到了字符串打印,可能時間會有些出入,但用來比較兩個時間差度已足夠
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < 1000; i++) {
    stringBuilder.append(i);
}
System.out.println(stringBuilder);
  1. 使用 String.valueOf(value) 代替 ""+value
int value = 99999;
String stringValue = String.valueOf(value);

Other

  1. 不要輕易使用魔法值

  2. 工具类应该屏蔽构造函数

  3. 过时代码添加 @Deprecated 注解

  4. 优先使用常量或确定值来调用 equals 方法

相关文章

  • Java(JavaEE)学习线路图1

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • Java学习线路图

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • 大数据学习线路图

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • 大数据学习教程

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • 一篇文章,全面解读Android面试知识点

    Java Java基础 Java集合框架 Java集合——ArrayList Java集合——LinkedList...

  • java学习路线

    javaSE java基础语法 java文件操作 java网络操作 java多线程 java数据库操作 java ...

  • java编程分类

    一、java简介java开发环境配置java基础语法java对象与类java基本数据类型java变量类型java修...

  • Java-01初识Java

    Java的3大版本 Java有三大版本,Java SE, Java ME, Java EE Java SE(Jav...

  • JAVA循环语句(四)9.29

    Java条件 if Java条件if...else Java条件多重if Java条件语句 嵌套if Java条件...

  • Java 基础

    Java 基础01Java开发入门 Java 基础02Java编程基础 Java 基础03面向对象 Java 基础...

网友评论

      本文标题:java

      本文链接:https://www.haomeiwen.com/subject/vegiahtx.html