开发时看到同事将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
哪个更好,很显然了。
相关推荐
List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>(); for (AnnouncementBean announcementBean : listAnnouncementBean) { Map<String, Object> map = new HashMap<String, Object>(); ...
ArrayList<User> userList = new ArrayList<>(); // 添加用户... Intent intent = new Intent(currentActivity, TargetActivity.class); intent.putParcelableArrayListExtra("key", userList); startActivity...
List<String> list = new ArrayList<String>(); list.add("a1"); list.add("a2"); // 使用toArray()方法,传入一个大小等于list.size()的String数组 String[] toBeStored = list.toArray(new String[list.size()]);...
一个C++(Ubuntu16.04+QT5.9.1)通过JNI,调用JAVA类及方法的示例。通过JNI传递和返回多种类型的参数,boolean ,int,String,ArrayList<string>,ArrayList嵌套ArrayList<ArrayList<String>>等。
ArrayList<Product> productList = new ArrayList<>(); for (String id : stringList) { Product product = new Product(id, "defaultName", 0.0); // 假设默认的name和price productList.add(product); } /...
List<Map<String,Object>> results = new ArrayList<Map<String,Object>>(); ResultSetMetaData rsmd = rs.getMetaData(); int colCount = rsmd.getColumnCount(); List<String> colNameList = new ArrayList...
List<String> list = new ArrayList<String>(); list.add("你"); list.add("好"); list.add("啊"); Collections.sort(list, new Comparator<String>() { @Override public int compare(String o1, String o2) { ...
并初始化ArrayList对象,例如:ArrayList<E> objectName = new ArrayList<>();其中E是泛型数据类型,objectName是对象名。 ArrayList提供了很多有用的方法,添加元素到ArrayList可以使用add()方法,例如: ```java ...
marshaller.marshal(new JAXBElement<>(new QName("people"), ArrayList.class, list), writer); return writer.toString(); } ``` 接下来,我们讨论如何将XML字符串转换为`Map`和`List`。这里,通常会使用`DOM`...
private static ArrayList<String> characters = new ArrayList<String>(); private static ArrayList<String> actions = new ArrayList<String>(); private static Random random = new Random(); public ...
例如:ArrayList<String> list = new ArrayList<>(); list.add("apple"); list.add("banana"); String fruit = list.get(0); // fruit 的值为 "apple" 2. size():该方法返回 ArrayList 中实际包含的元素个数。 ...
day14-ArrayList集合 1.ArrayList 1.1ArrayList类概述【理解】 ...ArrayList<String> array = new ArrayList<String>(); //添加元素 array.add("hello"); array.add("world"); array.add("java");
ArrayList<String> B = new ArrayList<>(A); ``` 这种方式创建了一个新的`List``B`,并将`A`的所有元素复制到`B`中,两个列表独立且互不影响。 3. **克隆(Clone)**: ```java ArrayList<String> B = A.clone...
ArrayList<String> names = new ArrayList<String>(); names.add("Ben"); names.add("Cat"); names.add(0, "Amy"); System.out.println(names); // [Amy, Ben, Cat] ``` 六、ArrayList 类的泛型 从 Java 5 开始,...
- `ArrayList<String> lists = new ArrayList<>();` 4. 泛型类和非泛型类(原始类)之间的区别在于类型检查是在编译时还是运行时进行的。在给定的代码段中: - 代码段①是正确的,因为它创建了一个`Holder<String...
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>()`这样的引用传递是不允许的。这是因为,泛型出现的原因就是为了解决类型转换的问题,而这种引用传递违背了泛型设计的初衷。在这种情况下,如果...
<%@ page import="java.util.ArrayList" %> <%! int m = 0; int Id = 8888; ArrayList<String> goodslist = new ArrayList<String>(); ArrayList<Float> pgoodslist = new ArrayList<Float>(); ArrayList...
Vector<String> stringVector = new Vector<>(); while (scanner.hasNextLine()) { String input = scanner.nextLine(); if (input.isEmpty()) break; stringVector.add(input); } System.out.println("\n...
Set<String> targetSet = new HashSet<>(sourceMap.values()); ``` 这里,我们首先创建了一个 Map,然后使用 map.values() 方法将 Map 转换为 Set。 Java 中的集合类型转换非常灵活,掌握这些方法可以帮助我们更好...