Tag: 集合

Map.clear()与新地图:哪一个会更好?

我有一个Map语法为Map<String, String> testMap = new HashMap<String, String>(); 。 在这张地图上可以有1000个数据。 当我的应用程序需要新的数据列表,那么我必须清除地图。 但是当我看到Map.clear()的代码为 /** * Removes all of the mappings from this map. * The map will be empty after this call returns. */ public void clear() { modCount++; Entry[] tab = table; for (int i = 0; i < tab.length; i++) tab[i] = null; size = […]

Collections.sort与多个字段

我有一个“报告”对象的列表与三个字段(所有stringtypes) – ReportKey StudentNumber School 我有一个sorting代码像 – Collections.sort(reportList, new Comparator<Report>() { @Override public int compare(final Report record1, final Report record2) { return (record1.getReportKey() + record1.getStudentNumber() + record1.getSchool()) .compareTo(record2.getReportKey() + record2.getStudentNumber() + record2.getSchool()); } }); 出于某种原因,我没有sorting的顺序。 有人build议在田间放置空间,但为什么? 你看到代码有什么问题吗?

.NET集合提供了最快的search

我有60K项目需要检查20K查找列表。 是否有一个集合对象(如List , HashTable )提供了一个exception快速的Contains()方法? 或者我将不得不写我自己的? 换句话说,是默认的Contains()方法只是扫描每个项目或使用更好的searchalgorithm。 foreach (Record item in LargeCollection) { if (LookupCollection.Contains(item.Key)) { // Do something } } 注意 。 查找列表已经sorting。

在Arrays.asList(数组)与新的ArrayList <Integer>(Arrays.asList(ia))之间的区别

有什么区别 1.List<Integer> list1 = new ArrayList<Integer>(Arrays.asList(ia)); //copy 2.List<Integer> list2 = Arrays.asList(ia); ia是整数数组。 我知道有些操作在list2是不允许的。 为什么这样呢? 它如何存储在内存(引用/副本)? 当我洗牌的列表, list1不会影响原来的数组,但list2做。 但是list2还是有些混乱。 如何将ArrayList升级为列表与创build新的ArrayList不同 list1 differs from (1) ArrayList<Integer> list1 = new ArrayList<Integer>(Arrays.asList(ia));

如何使用多个sorting条件对ArrayList进行sorting?

我有一个包含Quote对象的数组列表。 我希望能够按字母顺序sorting,按名称sorting,按更改sorting,并按百分比sorting。 我怎样才能sorting我的数据列表? package org.stocktwits.model; import java.io.Serializable; import java.text.DecimalFormat; public class Quote implements Serializable { private static final long serialVersionUID = 1L; public String symbol; public String name; public String change; public String percentChange; public String open; public String daysHigh; public String daysLow; public String dividendYield; public String volume; public String averageDailyVolume; public String peRatio; […]

Java的Collections.shuffle正在做什么?

我最近发现自己需要确定我的名单不合适。 Hibernate很好,可以按照完美的顺序返回它。 愚蠢的冬眠,没有读我的脑海。 我看着我的Java API,它告诉我它的洗牌方法是这样的: 随机地使用默认的随机源对指定的列表进行排列。 作为我的好奇乔治,我想知道这究竟是什么意思。 我可以学习这个math课程吗? 我可以看到代码吗? Java,你在做什么我的ArrayList?!?!? 更具体地说,这里使用了哪些math概念?

性能ConcurrentHashmap vs HashMap

与HashMap相比,ConcurrentHashMap的性能如何,尤其是.get()操作(我特别感兴趣的是只有几个项目的情况下,在0-5000之间的范围内)? 有什么理由不使用ConcurrentHashMap而不是HashMap? (我知道空值是不允许的) 更新 只是为了澄清,显然在实际并发访问情况下的性能会受到影响,但是如果在没有并发访问的情况下如何比较性能?

将List <Integer>转换为List <String>

我有一个整数List<Integer> , List<Integer> ,我想将所有的整数对象转换为string,从而完成一个新的List<String> 。 当然,我可以创build一个新的List<String>并遍历每个整数调用String.valueOf()的列表,但我想知道是否有一个更好的(读: 更自动 )的方式吗?

Java不可变集合

从Java 1.6 Collection Framework文档 : 不支持任何修改操作(如add , remove和clear )的集合被称为不可修改 。 […]另外保证集合对象永远不可见的集合被称为不可变的集合。 第二个标准混淆了我一点。 鉴于第一个集合是不可修改的,并且假设原始集合参考已被废弃,第二行中提到的变化是什么? 它是指在集合中所包含的元素的变化,即元素的状态? 第二个问题: 对于一个集合是不可改变的,一个人怎么去提供额外的保证人? 如果集合中元素的状态由线程更新,那么为了不可变性就足够了:状态中的那些更新在持有不可变集合的线程中不可见? 编辑:(突出第二个问题的重点): 对于一个集合是不可改变的,一个人怎么去提供额外的保证人?

在java中以相反顺序遍历列表

我正在迁移一段代码以利用generics。 这样做的一个参数是for循环比跟踪索引或使用显式迭代器更清洁。 在大约一半的情况下,列表(一个ArrayList)正在通过使用今天的索引以相反的顺序迭代。 有人可以build议一个更清洁的方式做到这一点(因为我不喜欢indexed for loop处理集合),虽然它的工作? for (int i = nodes.size() – 1; i >= 0; i–) { final Node each = (Node) nodes.get(i); … } 注意:我不能在JDK之外添加任何新的依赖关系。