开发时看到同事将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
哪个更好,很显然了。
相关推荐
一个C++(Ubuntu16.04+QT5.9.1)通过JNI,调用JAVA类及方法的示例。通过JNI传递和返回多种类型的参数,boolean ,int,String,ArrayList<string>,ArrayList嵌套ArrayList<ArrayList<String>>等。
private static ArrayList<String> characters = new ArrayList<String>(); private static ArrayList<String> actions = new ArrayList<String>(); private static Random random = new Random(); public ...
day14-ArrayList集合 1.ArrayList 1.1ArrayList类概述【理解】 ...ArrayList<String> array = new ArrayList<String>(); //添加元素 array.add("hello"); array.add("world"); array.add("java");
ArrayList<City> bj = new ArrayList<>(); bj.add(new City(1,"北京市")); ArrayList<City> tj = new ArrayList<>(); tj.add(new City(4,"天津市")); ArrayList<City> hn = new ArrayList<>(); hn.add...
在Java中,像`ArrayList<String> arrayList1 = new ArrayList<Object>()`这样的引用传递是不允许的。这是因为,泛型出现的原因就是为了解决类型转换的问题,而这种引用传递违背了泛型设计的初衷。在这种情况下,如果...
private List<String> messages = new ArrayList<String>(); public File getFile() { return file; } public void on(){ player.openSong(file.getAbsolutePath()); player.play(); } public void ...
List<String> resultList = new ArrayList<String>(); StringBuffer sb = new StringBuffer(); String initDay = day + " "; for (String time : timeList) { sb.append(initDay); sb.append(time); ...
ArrayList<String> files = new ArrayList<String>(); File file = new File(path); File[] tempList = file.listFiles(); for (int i = 0; i < tempList.length; i++) { if (tempList[i].isFile(...
List<Map<String, String>> list = new ArrayList<Map<String, String>>(); Map<String, String> map1 = new HashMap<String, String>(); map1.put("catagory", "三方存管变更"); map1.put("catagoryid", ...
List<String> warnings = new ArrayList<String>(); boolean overwrite = true; // 如果这里出现空指针,直接写绝对路径即可。 String genCfg = "D:\\workspace\\actity\\mybatis_generator\\src\\main\\...
Map<String, List<Friend>> data = new HashMap<String, List<Friend>>(); List<Friend> friends = new ArrayList<Friend>(); List<Friend> classmates = new ArrayList<Friend>(); List<Friend> family ...
<br>第1章 Java基础 <br>1.1 转换基本数据类型 <br>1.2 Java的运算符 <br>1.3 控制程序的流程 <br>1.4 计算阶乘 <br>1.5 实现命令行程序 <br>第2章 Java面向对象程序设计 <br>2. 1 复数类 <br>2. 2 equals.chashCode...
A<br>A Graphics<br>B Graphics2D<br>C String<br>D Color<br>3.指出正确的表达式 D<br>A byte=128;<br>B Boolean=null;<br>C long l=0xfffL;<br>D double=0.9239d;<br>4.指出下列程序运行的结果 D<br>public class...
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><br><html><br> <head><br> </head><br> <body><br> <table><br> <tr><br> <td><%@ include file="../menu.txt"%><br> </td><br> </tr>...
list = new ArrayList<String>(); } list.add(str[0]); map.put(str[1], list); } System.out.println(map); } catch (FileNotFoundException e) { // TODO Auto-generated...
public static <T> List<T> jsonToList(String jsonString, Class<T> pojoClass, String dataFormat) { JsonConfig jsonConfig = configJson(dataFormat); JSONArray jsonArray = JSONArray.fromObject(json...
List<String> warnings = new ArrayList<String>(); boolean overwrite = true; //指向逆向工程配置文件 File configFile = new File("config.xml"); ConfigurationParser cp = new ...
return new DataStore<Map<String, Object>>(records, new ArrayList<Map<String, Object>>()); } return new DataStore<Map<String, Object>>(records, search(pagingSqlBuilder.getPagingSql(sql, ...
List<String> result = new ArrayList<String>(); for (int i = 0; i < length - 1; i++) { String str = exampleWord.substring(i, i + PARTICIPLE_LENGTH); result.add(str); } System.out.println...
ArrayList<String> img=new ArrayList<String>(); // 将解析对象定义为一个列表 ArrayList<String> title = new ArrayList<String>(); 五、Android APP前端数据交互 随着智能手机的大量普及,人类的吃穿住行,...