【发布时间】:2012-04-29 02:15:57
【问题描述】:
我已经实现了一种方法,它简单地循环一组 CSV 文件,其中包含许多不同模块上的数据。然后将“moduleName”添加到 hashSet 中。 (代码如下)
我使用了 hashSet,因为它保证不会插入重复项,而不是 ArrayList,后者必须使用 contains() 方法并遍历列表以检查它是否已经存在。
我相信使用散列集比数组列表有更好的性能。 我这样说对吗?
还有,谁能给我解释一下:
- 如果使用每个数据结构,如何发挥性能?
-
使用大 O 表示法的复杂度是多少?
HashSet<String> modulesUploaded = new HashSet<String>(); for (File f: marksheetFiles){ try { csvFileReader = new CSVFileReader(f); csvReader = csvFileReader.readFile(); csvReader.readHeaders(); while(csvReader.readRecord()){ String moduleName = csvReader.get("Module"); if (!moduleName.isEmpty()){ modulesUploaded.add(moduleName); } } } catch (IOException e) { e.printStackTrace(); } csvReader.close(); } return modulesUploaded;}
【问题讨论】:
-
您可能希望将您使用的语言作为标签之一包含在内(您必须删除其他语言之一,但语言无疑更重要)。
标签: java performance algorithm arraylist hashset