Tag:

如何获取java.util.Set中项的索引

我知道Set和List之间的区别(允许唯一与重复,不订购/订购等)。 我正在寻找的是一个保持元素排序的集合(这很容易),但我还需要能够恢复插入元素的索引。 因此,如果我插入四个元素,那么我希望能够知道插入其中一个元素的顺序。 MySet set = MySet(); set.add(“one”); set.add(“two”); set.add(“three”); set.add(“four”); int index = set.getIndex(“two”); 因此,在任何给定时刻,我都可以检查是否已添加String,并获取集合中字符串的索引。 有这样的事情,还是我需要自己实施?

如何在java中获取地图的差异?

我有两张地图: Map map1; Map map2; 我需要收到这些地图之间的差异。 是否存在可能是apache utils如何获得这种差异? 现在似乎需要获取每个地图的入口集,发现diff1 = set1 – set2和diff2 = set2- set1。 创建汇总map = diff1 + diff2之后看起来非常笨拙。 是否存在另一种方式? 谢谢。

TreeSet没有添加所有元素?

我一直在研究不同Java集合类型的速度,并且遇到了一些奇怪的东西。 我将1,000,000个对象从静态数组添加到不同的集合类型并返回所需的时间。 这部分代码工作正常。 在进一步调查中,我注意到TreeSet没有收到所有1,000,000个对象,并且每次都收到不同的金额。 下面是将对象从数组传输到TreeSet : public int treeSet(int num) { Date before = new Date(); for(int i=0; i<num; i++) { treeSet.add(personsArray[i]); } Date after = new Date(); return (int) (after.getTime() – before.getTime()); } 下面是调用treeSet()方法并测试其大小的代码。 System.out.println(“\tTree set with 1,000,000 objects–” + t.treeSet(1000000)); System.out.println(“Tree set contains ” + t.treeSet.size() + ” elements”); 这个输出是: Tree set with […]

Java中两组的对称差异

我的应用程序中有两个TreeSet : set1 = {501,502,503,504} set2 = {502,503,504,505} 我想获得这些集的对称差异 ,以便我的输出将是集合: set = {501,505}

List vs Queue vs Java中的集合集

列表,队列和集合之间有什么区别?

为什么使用\ 0将highEndPoint包含在子列表中

我在java教程oracle中看到了下面的代码。 为了计算doorbell (包括)和pickle (包括)之间的单词数,作者在单词pickle之后添加了\0 。 我知道在pickle之后添加\0的效果是, pickle这个词现在作为子集的一部分包含在内。 但我的问题是,为什么要使用\0 ? 有人可以帮帮我吗? 在此先感谢您的帮助! SortedSet dictionary = new TreeSet(entire collection of words from a dictionary); int count = dictionary.subSet(“doorbell”, “pickle\0”).size(); System.out.println(count); 编辑: 另外,如果变量dictionary是对SortedSet的引用会发生什么? 如果我想包含highEndPoint,我现在该怎么办?

用于比较数据集的任何Java集合

我有2个月的2个数据集,包括学生姓名和分数。 我需要提供每个学生的2月分数和他/她的成绩分数变化百分比。 我可以用Java集合做到这一点吗? 样本数据集: name Jan_score Feb_score John 40 80 Mary 61 81 Jim 52 82 Liz – 84 Tim 94 – 输出应该是这样的 (姓名:John,Feb_score:80,变化百分比:100) (姓名:Mary,Feb_score:81,变化百分比:32.76) (姓名:Jim,Feb_score:82,变化百分比:57.69) (姓名:Liz,Feb_score:84,变化百分比:N / A) (姓名:Tim,Feb_score: – ,变化百分比:N / A)

LinkedHashSet删除重复对象

我有一个简单的问题,我有类产品,有这样的字段: private Integer id; private String category; private String symbol; private String desc; private Double price; private Integer quantity; 我想根据ID删除LinkedHasSet中的重复项,例如具有相同ID但不同数量的产品将被添加到set中,我想删除(更新)具有相同ID的产品,并且它将由我唯一的id对象,如何要做到这一点? 例如产品:id = 1,类别= CCTV,符号= TVC-DS,desc =简单相机,价格= 100.00, 数量= 1产品:id = 1,类别= CCTV,符号= TVC-DS,desc =简单相机,价格= 100.00, 数量= 3 不会被添加到设置中 我的代码: public void setList(Set list) { if(list.isEmpty()) this.list = list; else { this.list.addAll(list); Iterator it = this.list.iterator(); […]

如何定义我自己的元素类以用于Set

我有以下代码: public class MyElement { String name; String type; MyElement(String name, String type) { this.name = name; this.type = type; } } public class Test { public static void main(String[] args) { Set set = new HashSet(); set.add(new MyElement(“foo”, “bar”)); set.add(new MyElement(“foo”, “bar”)); set.add(new MyElement(“foo”, “bar”)); System.out.println(set.size()); System.out.println(set.contains(new MyElement(“foo”, “bar”))); } } 执行时返回: 3 false […]

在java中创建一组数组

我想做点什么 Set strSet = new HashSet (); 有一种简单的方法可以用Java创建一组数组,还是我必须编写自己的实现代码? 将对象添加到Set使用equals()检查Object,这对数组不起作用。