Tag: 集合

为什么Java的同步集合不使用读/写锁?

在Hashtable和Vector类的东西不鼓励之后,当Collections同步包装器出现时,我认为同步将更有效地处理。 现在我查看了代码,我很惊讶它只是用同步块包装集合。 为什么ReadWriteLock不包含在集合中的SynchronizedMap中? 是否存在一些不值得的效率考虑因素?

Treeset按降序排列元素

这是我用于Java 5.0的代码段 TreeSet treeSetObj = new TreeSet( Collections.reverseOrder() ) ; Collections.reverseOrder()用于获取比较器,以反转元素的存储和迭代方式。 有更优化的方式吗?

Java:从磁盘写入/读取映射

我是Java的新手,所以我不确定最好的方法。 我有一个数据结构,我希望能够在关闭程序之前写入文件,然后从文件中读取以在下次应用程序启动时重新填充结构。 我的结构是HashMap 。 对象非常简单; 对于成员变量,它有一个String,以及两个Boolean类型的小型本机数组。 这是一个非常简单的应用程序,我不希望一次超过10-15个对。 我一直在用Object输入/输出流进行实验(不成功)。 我是否需要使Object类可序列化? 你能给我任何关于最佳方法的建议吗? 我只需要朝着正确的方向努力。 谢谢! 编辑:嗯,我仍然感到愚蠢,我正在从一张地图写入并阅读另一张地图,然后比较它们以检查我的结果。 显然我在比较他们错了。 叹。

如何在java中迭代时在List中添加元素?

说我有一个像这样的列表: List list = new ArrayList(); list.add(“a”); list.add(“h”); list.add(“f”); list.add(“s”); 在遍历此列表时,我想在列表的末尾添加一个元素。 但我不想迭代新添加的元素,我想迭代到列表的初始大小。 for (String s : list) /* Here I want to add new element if needed while iterating */ 任何人都可以建议我怎么做?

List Iterator的add()方法对迭代器做了什么?

我希望能够使用ListIterator将元素插入到ArrayList中,但是在阅读与ListIterator类的add方法相关的文档之后我甚至感到困惑,如果我这样做的话 for(int i = 0 ; i < list.size() ; ++i) listIterator.add( list.get(i) ); 这段代码片段对我的列表迭代器做了什么,它在哪里移动列表迭代器? 当我运行以下代码时,我得到的结果是“嗨” – : import java.util.ArrayList; import java.util.ListIterator; public class ListIter { public static void main(String[] args) { String[] s = {“Hi”, “I”, “am”, “Ankit”}; ArrayList list = new ArrayList(); ListIterator listIterator = list.listIterator(); for (int i = 0; i < […]

用于字节数组的Java Comparator(字典)

我有一个带有byte []键的hashmap。 我想通过TreeMap对其进行排序。 为字典顺序实施比较器的最有效方法是什么?

为什么HashMap的哈希表标记为瞬态,尽管该类是可序列化的

我正在查看HashMap的来源。 HashMap implements Serializable 。 好的,它可以作为对象进行存储/传输。 但我发现散列表本身被标记为transient 。 我不明白。如果你把它标记为瞬态,这是不是意味着它不应该被序列化? 但所有的数据都在表格中。那为什么它是transient ? 也许我对Serializable如何工作感到困惑?

在java中调用Collections.checkedList()是什么?

我只想知道实际使用java.util.Collections.checkedList()内容。 我有一些代码,我知道它返回一个List但它正在通过一连串的消息传递调用并作为java.io.Serializable返回给我。 这个checkedList调用是否适合我将Serializable转换为List ? 我知道我可以将它转换为java.util.List ,但我不必检查每个元素,并且我不习惯假设每个元素都是一个String 。

关于java中的HashMap实现

我试图对hashmap进行研究并得出以下分析: https://stackoverflow.com/questions/11596549/how-does-javas-hashmap-work-internally/18492835#18492835 Q1你们可以给我看一个简单的地图,你可以在其中显示过程……如何通过使用这个公式详细计算给定键的哈希码..计算位置哈希%(arrayLength-1))其中应该放置元素(桶号),假设我有这个hashMap HashMap map=new HashMap();//HashMap key random order. map.put(“Amit”,”Java”); map.put(“Saral”,”J2EE”); Q2有时可能会发生2个不同对象的hashCodes相同。 在这种情况下,2个对象将保存在一个存储桶中,并将显示为LinkedList。 入口点是最近添加的对象。 该对象指的是具有下一个字段的其他对象,因此一个。 最后一个条目是指null。 你们能用真实的例子告诉我这个…… !! 。 “Amit”将被分发到第10个桶,因为有点twiddeling。 如果没有任何位置,它会转到第7个桶,因为2044535&15 = 7.这怎么可能请详细说明整个计算..? 快照已更新…… 而另一个图像是……

Guava ForwardingList用法示例

我正在寻找解释Guava ForwardingList类的示例代码。 基本上我正在实现一个自定义的ArrayList类,它将用于解决我之前的SO问题中提到的这个要求。 我之前从未使用过Googlecollections。 但是通过查看ForwardingList的JavaDoc ,我想我可以通过子类化ForwardingList来实现我的自定义类。