java - 泛型对执行时间的影响

标签 java performance collections arraylist hashmap

我有一个从数据库获取数据并发送到 UI 以生成图表的类。

类的执行时间为14秒

    List listOfCLI =new ArrayList();
List listOfRRV =new ArrayList();
List listOfROP =new ArrayList();
List listOfACR =new ArrayList();
List listOfPIN =new ArrayList();
List listOfRIS =new ArrayList();
List listOfTAA =new ArrayList();
List listOfTAR =new ArrayList();
List listOfPHA =new ArrayList();
List listOfSAR =new ArrayList();
List listOfGRQ =new ArrayList();
List listOfADC =new ArrayList();

当我将代码更改为

 List<DataMS> listOfCLI =new ArrayList<DataMS>();
List<DataMS> listOfRRV =new ArrayList<DataMS>();
List<DataMS> listOfROP =new ArrayList<DataMS>();
List<DataMS> listOfACR =new ArrayList<DataMS>();
List<DataMS> listOfPIN =new ArrayList<DataMS>();
List<DataMS> listOfRIS =new ArrayList<DataMS>();
List<DataMS> listOfTAA =new ArrayList<DataMS>();
List<DataMS> listOfTAR =new ArrayList<DataMS>();
List<DataMS> listOfPHA =new ArrayList<DataMS>();
List<DataMS> listOfSAR =new ArrayList<DataMS>();
List<DataMS> listOfGRQ =new ArrayList<DataMS>();
List<DataMS> listOfADC =new ArrayList<DataMS>();

执行时间长达 17 秒.. 为什么添加 eclipse 建议的 Generic 会产生如此不利的影响。

您还可以建议使用泛型来减少执行时间的最佳方法吗

**Map<String, List> reqCLI =new HashMap<String, List>();
        Map<String, List> reqRRV =new HashMap<String, List>();
        Map<String, List> reqROP =new HashMap<String, List>();
        Map<String, List> reqACR =new HashMap<String, List>();
        Map<String, List> reqPIN =new HashMap<String, List>();
        Map<String, List> reqTAA =new HashMap<String, List>();
        Map<String, List> reqTAR =new HashMap<String, List>();
        Map<String, List> reqRIS =new HashMap<String, List>();
        Map<String, List> reqPHA =new HashMap<String, List>();
        Map<String, List> reqSAR =new HashMap<String, List>();
        Map<String, List> reqGRQ =new HashMap<String, List>();
        Map<String, List> reqADC =new HashMap<String, List>();

        List<Map<String, List>> listCLI=new ArrayList<Map<String, List>>();
        List<Map<String, List>> listRRV=new ArrayList<Map<String, List>>();
        List<Map<String, List>> listROP=new ArrayList<Map<String, List>>();
        List<Map<String, List>> listACR=new ArrayList<Map<String, List>>();
        List<Map<String, List>> listPIN=new ArrayList<Map<String, List>>();
        List<Map<String, List>> listTAA=new ArrayList<Map<String, List>>();
        List<Map<String, List>> listTAR=new ArrayList<Map<String, List>>();
        List<Map<String, List>> listRIS=new ArrayList<Map<String, List>>();
        List<Map<String, List>> listPHA=new ArrayList<Map<String, List>>();
        List<Map<String, List>> listSAR=new ArrayList<Map<String, List>>();
        List<Map<String, List>> listGRQ=new ArrayList<Map<String, List>>();
        List<Map<String, List>> listADC=new ArrayList<Map<String, List>>();**

这些是剩下的 Collection 品的用过

最佳答案

由于类型删除(参见http://www.angelikalanger.com/GenericsFAQ/FAQSections/TechnicalDetails.html#FAQ101),泛型类型不会在编译的字节码中表示,因此执行时的性能应该没有差异。仅在编译时检查参数化类型。

关于java - 泛型对执行时间的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22642870/

相关文章:

java - 如何打印自己实现的堆栈?

r - 我怎样才能编写这个工作代码来提高性能?

java - 从java中的列表创建列表

javascript - 所有型号的值相同 -> 收集事件

java - 在java 8中将hashmap拆分为分区

java - 如何从 Kotlin 数据类创建对象的 Java 实例但不包含所有字段?

java - 如何将键转换为字符串,反之亦然

java - android fragment 未附加到 Activity

mysql - 这张 table 应该一分为二吗?

获得最大 SQL Server 2012 写入性能的 C# 代码