博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tips
阅读量:4969 次
发布时间:2019-06-12

本文共 2377 字,大约阅读时间需要 7 分钟。

1.StringBuffer 与 StringBuilder

  a.执行速度:StringBuilder > StringBuffer         => 单线程操作大量数据 : StringBuilder

  b.StringBuilder:线程非安全的    StringBuffer :线程安全   =>   多线程操作大量数据 : StringBuffer

  c.它们均是字符串变量,是可以改变的对象,因此在对字符串操作时,是对一个对象操作,不像String一样创建对象再进行操作,因此速度会变快。  =>    操作少量数据用 String

 3.ArrayList(或者其他很多自定义数据结构)的排序问题 :

Comparator
comparator = new Comparator
(){ public int compare(Interval i1,Interval i2){ if( i1.start>i2.start) return 1; else if( i1.start == i2.start)             return 0;           else return -1; } };

自定义排序问题,很实用。

4、Hash遍历问题

第一种:   Map map = new HashMap();   Iterator iter = map.entrySet().iterator();   while (iter.hasNext()) {
  Map.Entry entry = (Map.Entry) iter.next();   Object key = entry.getKey();   Object val = entry.getValue();   }   效率高,以后一定要使用此种方式! 第二种:   Map map = new HashMap();   Iterator iter = map.keySet().iterator();   while (iter.hasNext()) {
  Object key = iter.next();   Object val = map.get(key);   }   效率低,以后尽量少使用! HashMap的遍历有两种常用的方法,那就是使用keyset及entryset来进行遍历,但两者的遍历速度是有差别的,下面请看实例:   public class HashMapTest {
  public static void main(String[] args) ...{
  HashMap hashmap = new HashMap();   for (int i = 0; i < 1000; i ) ...{
  hashmap.put("" i, "thanks");   }   long bs = Calendar.getInstance().getTimeInMillis();   Iterator iterator = hashmap.keySet().iterator();   while (iterator.hasNext()) ...{
  System.out.print(hashmap.get(iterator.next()));   }   System.out.println();   System.out.println(Calendar.getInstance().getTimeInMillis() - bs);   listHashMap();   }   public static void listHashMap() ...{
  java.util.HashMap hashmap = new java.util.HashMap();   for (int i = 0; i < 1000; i ) ...{
  hashmap.put("" i, "thanks");   }   long bs = Calendar.getInstance().getTimeInMillis();   java.util.Iterator it = hashmap.entrySet().iterator();   while (it.hasNext()) ...{
  java.util.Map.Entry entry = (java.util.Map.Entry) it.next();   // entry.getKey() 返回与此项对应的键   // entry.getValue() 返回与此项对应的值   System.out.print(entry.getValue());   }   System.out.println();   System.out.println(Calendar.getInstance().getTimeInMillis() - bs);   }   }   对于keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对于的value。而entryset只是遍历了第一次,他把key和value都放到了entry中,所以就快了。

转载于:https://www.cnblogs.com/xiaoba1203/p/5588378.html

你可能感兴趣的文章
秋季学期学习总结
查看>>
SpringBoot 优化内嵌的Tomcat
查看>>
【LaTeX】E喵的LaTeX新手入门教程(1)准备篇
查看>>
highcharts曲线图
查看>>
extjs动态改变样式
查看>>
PL/SQL Developer 查询的数据有乱码或者where 字段名=字段值 查不出来数据
查看>>
宏定义
查看>>
笔记:git基本操作
查看>>
生成php所需要的APNS Service pem证书的步骤
查看>>
JavaWeb之JSON
查看>>
HOT SUMMER 每天都是不一样,积极的去感受生活 C#关闭IE相应的窗口 .
查看>>
windows平台上编译mongdb-cxx-driver
查看>>
optionMenu-普通菜单使用
查看>>
2016-2017-2点集拓扑作业[本科生上课时]讲解视频
查看>>
appium(13)- server config
查看>>
IIS负载均衡-Application Request Route详解第六篇:使用失败请求跟踪规则来诊断ARR...
查看>>
管理信息系统 第三部分 作业
查看>>
[Leetcode Week13]Search a 2D Matrix
查看>>
查看端口占用cmd命令
查看>>
2019.01.17王苛震作业
查看>>