Tag: 集合

两个ArrayLists之间的同步排序

我有两个ArrayLists。 第一个包含一组带有大写和标点符号的单词。 另一个包含同一组单词,但删除了大写和标点符号。 。 ArrayList1 ….. ArrayList2 MURDER! …….. murder It’s ……….. its Hello ………. hello Yes-Man …….. yesman ON …………. on 第二个数组具有按字母顺序排列的所有单词,并且每个单词中的所有字母都按字母顺序排列。 它看起来像这样: aemnsy demrru ehllo ist no 我想这样做,以便当我将ArrayList中的单词排列成字母顺序时,所有来自ArrayList的单词都遵循套件: ArrayList1 ….. ArrayList2 Yes-Man …….. aemnsy MURDER! …….. demrru Hello ………. ehllo It’s ……….. ist ON …………. no 我尝试用一​​个或两个for语句创建一个循环,但它最终没有工作并变得很长。 我该怎么做呢? 我该如何有效地做到这一点?

在mongodb集合中查找一些值?

我试图用java读取(mongo)用户数据库。 在教程页面上,我看到了如何阅读整个集合。 我可以这样做: DBCursor cursor = col.find(); while (cursor.hasNext()) { System.out.println(cursor.next()); } 现在,如果我有一个用户集合:=姓名,年龄,密码(…)等等。 现在我想找一个带密码的名字。 例如,对于登录过程。 假设我有两个字符串:String n和p。 如果数据库中有user.equals(n)和password.equals(p),则登录用户。 我该如何更换光标? 我在mongodb java教程页面上看到了一些查询示例,但是我真的不明白…… 有任何想法吗? 谢谢

用于比较数据集的任何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)

通过Collections.unmodifiable *已经用Collections.unmodifiable *包装的实例是多么低效?

我有一些计件工作由不同的自定义(源代码不可用)框架完成,这些框架可以传回Map实例。 不幸的是,这些框架在返回的Map实例中并不一致,这些实例已用Collections.unmodifiableMap包装。 为了确保我的代码中更高程度的不变性(为了更容易的multithreading使用),我在这些框架返回的任何内容上统一调用了Collections.unmodifiableMap。 Map immutableMap = framework.getRecordsByName(); //does this created a nested set of unmodifiableMap wrapper instances? this.immutableField = Collections.unmodifiableMap(immutableMap); . . . Map maybeImmutableMap = framework.getRecordsByName(); //is there some means to get instanceof to work? if (!(maybeImmutableMap instanceof Collections.UnmodifiableMap)) { this.immutableField = Collections.unmodifiableMap(maybeImmutableMap); } 我意识到我的设计可能会遇到性能问题。 在某些情况下,我正在调用Collections.unmodifiableMap向它传递一个实例,该实例已经被同一个调用的框架包装。 而且我的重新包装可能会在整个实例中引起额外的方法调用。 似乎使用“instanceof Collections.UnmodifiableMap”不起作用。 如果我当前引用的Map实例需要被包装,我找不到任何检测方法(不包括使用这种情况下不是选项的reflection – 方式太慢)。 问题: A)Collections.unmodifiableMap()方法是否检查它是否传递了UnmodifiableMap的实例,如果是这样,只返回相同的引用(从而避免在调用方法之前检查)? […]

Java中Set和SortedSet接口之间的逻辑不一致

我注意到Java中的Set和SortedSet接口之间存在逻辑不一致。 如果在比较期间它们相同,则SortedSet将不同的对象(通过equal()方法)识别为equals,但它在逻辑上是不正确的。 对象的比较应仅对对象的顺序负责。 例如:我可以有很多产品,我想按价格对它们进行排序。 在这种情况下,SortedSet不能包含具有相同价格的不同产品:[“salt”,0.5 $],[“milk”,1 $],[“bread”,1 $],[“bananas”,2 $ ]在上面的例子中,牛奶将被面包取代。 在这种情况下,将违反inheritance的Set接口的合同,因为不相等的对象会相互替换。 我更新了SortedSet的JavaDoc并且知道这个行为有很好的记录,但我认为这是一个逻辑上的失败。 你有什么看法,也许你已经和Set和SortedSet有类似的问题了?

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(); […]

collections.sort方法只用于List类型的集合?

朋友们,我是Java-Collection的新手。 我想问一下Collections.sort()方法只用于/由List类型的集合。 我无法对以下代码进行排序: Collection collection=new HashSet(); collection.add(“zebra”); collection.add(“frog”); collection.add(“bison”); collection.add(“puma”); Collections.sort(collection); //error…why?? 我知道HashSet用于唯一元素。 但有没有办法对这个系列进行排序?

java中的Map.Entry接口

我知道java.util.Map.Entry是java.util包中的一个public static interface ,它返回一个map的集合视图但是到目前为止我对静态接口很困惑,因为它是Map.Entry它是一个内部接口如果是这样,我们如何在java中使用内部静态接口 看看我很困惑的人请以任何可能的方式帮助我。

使用modyfing String迭代List

我无法通过这种方式修改List的元素: for (String s : list) { s = “x” + s; } 执行后,此列表的这些代码元素不变。如何通过List以最简单的方式实现迭代迭代。

有序地图实施

我正在寻找一个Map实现,它按照添加顺序迭代键值对。 例如 Map orderedMap = // instantiation omitted for obvious reasons 🙂 orderMap.put(4, “d”); orderMap.put(10, “y”); orderMap.put(2, “b”); for (Map.Entry entry : orderedMap.entrySet()) { System.out.println(entry.getKey() + “, ” + entry.getValue()); } 将永远打印 4, d 10, y 2, b 我正在使用Java 5.0。 谢谢,唐