`
javashuaibushuai
  • 浏览: 1987 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java ArrayList<String> 转 String[] 效率对比

    博客分类:
  • java
阅读更多

 

开发时看到同事将ArrayList转为String的时候是手动遍历来做的,好奇为啥不实用jdk提供的方法呢,于是乎做了一个实验,两种方法的性能相差是相当惊人的:

import java.util.ArrayList;
import java.util.List;

public class ArrayListToStringArrComp {
	private static List<String> baseData;
	private static final int ARRAY_SIZE = 10000;
	public static void main(String[] args) {
		long begTime;
		long endTime;
		baseData = new ArrayList<String>();
		for (int i = 0; i < ARRAY_SIZE; i++){
			baseData.add(String.valueOf(i));
		}
		
		begTime = System.nanoTime();
		String[] s2 = (String[])baseData.toArray(new String[ARRAY_SIZE]); 
		endTime = System.nanoTime();
		System.out.println("自带方法耗时: " + (endTime - begTime));

		begTime = System.nanoTime();
		String[] s1 = new String[ARRAY_SIZE];
		for(int i = 0; i < ARRAY_SIZE; i++){
			s1[i] = baseData.get(i);
		}
		endTime = System.nanoTime();
		System.out.println("手工遍历耗时: " + (endTime - begTime));
	}
}

 在我电脑上的输出是:

   自带方法耗时: 89000

   手工遍历耗时: 2005000

哪个更好,很显然了。

分享到:
评论

相关推荐

    JNI与C++数据类型传递示例(包括ArrayList对象、ArrayList嵌套返回)

    一个C++(Ubuntu16.04+QT5.9.1)通过JNI,调用JAVA类及方法的示例。通过JNI传递和返回多种类型的参数,boolean ,int,String,ArrayList&lt;string&gt;,ArrayList嵌套ArrayList&lt;ArrayList&lt;String&gt;&gt;等。

    Java设计二次元动漫人物演出活动小游戏代码.docx

    private static ArrayList&lt;String&gt; characters = new ArrayList&lt;String&gt;(); private static ArrayList&lt;String&gt; actions = new ArrayList&lt;String&gt;(); private static Random random = new Random(); public ...

    跟我学Java-day14-ArrayList集合.pdf

    day14-ArrayList集合 1.ArrayList 1.1ArrayList类概述【理解】 ...ArrayList&lt;String&gt; array = new ArrayList&lt;String&gt;(); //添加元素 array.add("hello"); array.add("world"); array.add("java");

    java桑硅谷 day23 晨考.zip

    ArrayList&lt;City&gt; bj = new ArrayList&lt;&gt;(); bj.add(new City(1,"北京市")); ArrayList&lt;City&gt; tj = new ArrayList&lt;&gt;(); tj.add(new City(4,"天津市")); ArrayList&lt;City&gt; hn = new ArrayList&lt;&gt;(); hn.add...

    泛型需要注意的问题Java系列2021.pdf

    在Java中,像`ArrayList&lt;String&gt; arrayList1 = new ArrayList&lt;Object&gt;()`这样的引用传递是不允许的。这是因为,泛型出现的原因就是为了解决类型转换的问题,而这种引用传递违背了泛型设计的初衷。在这种情况下,如果...

    Java实现MP3播放器

    private List&lt;String&gt; messages = new ArrayList&lt;String&gt;(); public File getFile() { return file; } public void on(){ player.openSong(file.getAbsolutePath()); player.play(); } public void ...

    校园管理系统

    List&lt;String&gt; resultList = new ArrayList&lt;String&gt;(); StringBuffer sb = new StringBuffer(); String initDay = day + " "; for (String time : timeList) { sb.append(initDay); sb.append(time); ...

    卫斯理合集 倪匡

    ArrayList&lt;String&gt; files = new ArrayList&lt;String&gt;(); File file = new File&#40;path&#41;; File[] tempList = file.listFiles(); for (int i = 0; i &lt; tempList.length; i++) { if (tempList[i].isFile&#40;...

    ComparatorListObject.java

    List&lt;Map&lt;String, String&gt;&gt; list = new ArrayList&lt;Map&lt;String, String&gt;&gt;(); Map&lt;String, String&gt; map1 = new HashMap&lt;String, String&gt;(); map1.put("catagory", "三方存管变更"); map1.put("catagoryid", ...

    mybatis generator Java类方法生成

    List&lt;String&gt; warnings = new ArrayList&lt;String&gt;(); boolean overwrite = true; // 如果这里出现空指针,直接写绝对路径即可。 String genCfg = "D:\\workspace\\actity\\mybatis_generator\\src\\main\\...

    Java集合框架测试

    Map&lt;String, List&lt;Friend&gt;&gt; data = new HashMap&lt;String, List&lt;Friend&gt;&gt;(); List&lt;Friend&gt; friends = new ArrayList&lt;Friend&gt;(); List&lt;Friend&gt; classmates = new ArrayList&lt;Friend&gt;(); List&lt;Friend&gt; family ...

    Java JDK实例宝典

    &lt;br&gt;第1章 Java基础 &lt;br&gt;1.1 转换基本数据类型 &lt;br&gt;1.2 Java的运算符 &lt;br&gt;1.3 控制程序的流程 &lt;br&gt;1.4 计算阶乘 &lt;br&gt;1.5 实现命令行程序 &lt;br&gt;第2章 Java面向对象程序设计 &lt;br&gt;2. 1 复数类 &lt;br&gt;2. 2 equals.chashCode...

    Java测试题2答案

    A&lt;br&gt;A Graphics&lt;br&gt;B Graphics2D&lt;br&gt;C String&lt;br&gt;D Color&lt;br&gt;3.指出正确的表达式 D&lt;br&gt;A byte=128;&lt;br&gt;B Boolean=null;&lt;br&gt;C long l=0xfffL;&lt;br&gt;D double=0.9239d;&lt;br&gt;4.指出下列程序运行的结果 D&lt;br&gt;public class...

    struts 标签 logic:iterate使用 logic:iterate

    DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;&lt;br&gt;&lt;html&gt;&lt;br&gt; &lt;head&gt;&lt;br&gt; &lt;/head&gt;&lt;br&gt; &lt;body&gt;&lt;br&gt; &lt;table&gt;&lt;br&gt; &lt;tr&gt;&lt;br&gt; &lt;td&gt;&lt;%@ include file="../menu.txt"%&gt;&lt;br&gt; &lt;/td&gt;&lt;br&gt; &lt;/tr&gt;...

    Java IO学习文件处理

    list = new ArrayList&lt;String&gt;(); } list.add(str[0]); map.put(str[1], list); } System.out.println(map); } catch (FileNotFoundException e) { // TODO Auto-generated...

    java jsonto对象互转

    public static &lt;T&gt; List&lt;T&gt; jsonToList(String jsonString, Class&lt;T&gt; pojoClass, String dataFormat) { JsonConfig jsonConfig = configJson(dataFormat); JSONArray jsonArray = JSONArray.fromObject(json...

    AutoMybatis.rar

    List&lt;String&gt; warnings = new ArrayList&lt;String&gt;(); boolean overwrite = true; //指向逆向工程配置文件 File configFile = new File("config.xml"); ConfigurationParser cp = new ...

    springmvc-jdbcTemplate

    return new DataStore&lt;Map&lt;String, Object&gt;&gt;(records, new ArrayList&lt;Map&lt;String, Object&gt;&gt;()); } return new DataStore&lt;Map&lt;String, Object&gt;&gt;(records, search(pagingSqlBuilder.getPagingSql(sql, ...

    java分词代码

    List&lt;String&gt; result = new ArrayList&lt;String&gt;(); for (int i = 0; i &lt; length - 1; i++) { String str = exampleWord.substring(i, i + PARTICIPLE_LENGTH); result.add(str); } System.out.println...

    基于Android的APP前端数据交互.pdf

    ArrayList&lt;String&gt; img=new ArrayList&lt;String&gt;(); // 将解析对象定义为一个列表 ArrayList&lt;String&gt; title = new ArrayList&lt;String&gt;(); 五、Android APP前端数据交互 随着智能手机的大量普及,人类的吃穿住行,...

Global site tag (gtag.js) - Google Analytics