public static void main(String[] args) {
List<Profile> profileList = new ArrayList<Profile>(100000);
for (int i = 0; i < 100000; i++) {
Profile profile = new Profile();
profile.setUserId(i);
profile.setUserName("zystest1");
profileList.add(profile);
}
long time1 = new Date().getTime();
Map<Long, Profile> pMap = new HashMap<Long, Profile>(100000);
for (Profile profile : profileList) {
pMap.put(profile.getUserId(), profile);
}
long time2 = new Date().getTime();
System.out.println((time2 - time1));
}
10W个数据,消耗时间为88ms
public static void main(String[] args) {
List<Profile> profileList = new ArrayList<Profile>(100000);
for (int i = 0; i < 100000; i++) {
Profile profile = new Profile();
profile.setUserId(i);
profile.setUserName("zystest1");
profileList.add(profile);
}
long time1 = new Date().getTime();
Map<Long, Profile> pMap = new HashMap<Long, Profile>(100000);
try {
pMap = Test.ListToMap(profileList, "getUserId", Profile.class,
100000);
} catch (Exception e) {
e.printStackTrace();
}
long time2 = new Date().getTime();
System.out.println((time2 - time1));
}
public static <T> Map<Long, T> ListToMap(List<T> objects,
String methodName, Class class1, int initSize) {
Map<Long, T> pMap = new HashMap<Long, T>(initSize);
try {
Method method = class1.getMethod(methodName);
for (T t : objects) {
Long long1 = (Long) method.invoke(t);
pMap.put(long1, t);
}
} catch (Exception e) {
e.printStackTrace();
}
return pMap;
}
使用反射机制做listToMap,耗时98ms
总体来说,只要不循环定义method,效率还是比较高的
分享到:
相关推荐
将List集合中的map对象转为List<对象>形式需要使用Java的反射机制和BeanUtils工具类。 下面是将List集合中的map对象转为List<对象>形式的实例代码: 首先,需要定义一个EntityBean类,该类中包含了两个方法:parse...
map 和 bean 之间的转换,可以利用反射的原理实现
String类型转为Map集合 如果字符串是以键值对的形式存储的JSON数据,可以使用Gson库将其转换为`Map`对象。 **示例**: ```java String json = "{\"remain\":463,\"success\":1}"; Gson gson = new Gson(); Map, ...
在进行JSON与Java对象互转时,需要注意的是,Java对象的属性必须有对应的getter和setter方法,因为`JSONObject`依赖于Java的反射机制来读取和设置属性。此外,`JSONObject`在处理枚举类型时可能需要特别处理,通常会...
当JavaBean对象中包含List或Map等集合属性时,可以使用`populate()`方法将Map对象中的键值对填充到JavaBean对象中,实现了将复杂数据结构转换为JavaBean的过程。 在使用BeanUtils时,需要注意的是,由于它依赖于...
- **List、Map和Set的区别**:List是有序的、可重复的集合,Map是键值对的集合,Set是不包含重复元素的集合。 以上只是Java面试中的一部分常见问题,全面准备还需要深入学习异常处理、IO流、多线程、网络编程、...
- **JSON到Java对象**:通过`JSON.parseObject()`或`JSON.parseArray()`方法,可以将JSON字符串转化为Java的Map、List或自定义对象。 - **Java对象到JSON**:`Object.toJSONString()`或`JSON.toJSONString(Object)...
8. **集合框架**:Java集合框架包括List、Set和Map接口,以及ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap等实现。线程安全的集合有Vector和Hashtable,而Collections工具类可将非线程安全集合转为...
- **解释型语言**: 如Python,运行时需要解释器将其转为机器码。 #### 三、Java开发工具 - **JDK (Java Development Kit)**: - 包含Java编译器、调试器和其他工具,支持Java应用程序的开发。 - **JRE (Java ...
26. **反射机制**: 反射允许程序在运行时动态获取类的信息(如类名、属性、方法)并调用。 27. **泛型**: 泛型提供类型安全,减少类型转换,提高代码可读性。 28. **XML解析**: DOM解析一次性加载整个XML...
- 将 GB2312 编码的字符串转换为 ISO-8859-1 编码:使用 `String.getBytes("GB2312")` 转为字节数组,然后使用 `new String(bytes, "ISO-8859-1")` 转换回字符串。 9. **Java中访问数据库** - 使用 JDBC 连接...