Tag:

如果Set包含带有一些字符串值的对象,如何检入java?

我有一组对象。 每个对象都有String值。 我需要选择具有this值等于“direction”的所有对象。 没有迭代集合是否可能? 谢谢。

Java:重复的对象被添加到set?

如果我运行以下代码,则输出为2,这意味着该集合包含2个元素。 但是我认为该集应该包含1,因为两个对象基于hashcode()值和.equals()方法是相等的。 在我的理解中似乎有些明显的错误? package HELLO; import java.util.HashSet; import java.util.Set; public class Test { public static void main(String[] args) throws Exception { Set s = new HashSet(); Alpha a1 = new Alpha(); Alpha a2 = new Alpha(); s.add(a1); s.add(a2); System.out.println(s.size()); } } class Alpha { int a = 10; public int hashcode() { return a; } […]

使用自定义比较器时,使用TreeSet或ArrayList是否更好?

我已经实现了一个图表。 我想根据它们的度数对给定的顶点子集进行排序。 因此,我编写了一个名为DegreeComparator的自定义比较器。 private class DegreeComparator implements Comparator { @Override public int compare(Integer arg0, Integer arg1) { if(adj[arg1].size() == adj[arg0].size()) return arg1 – arg0; else return adj[arg1].size() – adj[arg0].size()); } } 那么,下面哪一个更有效率? 使用TreeSet public Collection sort(Collection unsorted) { Set sorted = new TreeSet(new DegreeComparator()); sorted.addAll(unsorted); return sorted; } 使用ArrayList Collections.sort(unsorted, new DegreeComparator()); 请注意,第二种方法不是函数,而是单行代码。 直观地说,我宁愿选择第二个。 但我不确定它是否更有效率。

如何在没有迭代的情况下获取给定LinkedHashSet元素的索引?

它甚至可能吗? 说你有 private Set names = new LinkedHashSet(); Strings是“迈克”,“约翰”,“凯伦”。 是否有可能在没有迭代的情况下得到“1”以回答“约翰”的索引是什么? 以下工作正常..有了这个问题,我想知道是否有更好的方法 for (String s : names) { ++i; if (s.equals(someRandomInputString)) { break; } }

何时在Java中使用Enum或Collection

在什么情况下枚举更适合比例如保证独特元素的集合(java.util.Set的实现者,我猜……)? (这是我之前的问题的后续跟进)

如何使用java.Set

我试图让它工作很长一段时间,但似乎无法得到它。 我有Block的Block塔。 我已经使用数组工作了,但我想学习Set的。 我想得到类似的function: public class Tower { public Tower(){ } public Tower add(Block k1){ //(…) //if block already in tower, return “Block already in tower” } public Tower delete(Block k1){ //(…) //if block already dleted, show “No such block in tower” } } 有人给了我一些代码,但在尝试使用时我经常遇到错误: Set tower = new HashSet(); boolean added = tower.add( k1 […]

在Set中存储数组并避免重复

HashSet boog = new HashSet(); boog.add(new String[]{“a”, “b”, “c”}); boog.add(new String[]{“a”, “b”, “c”}); boog.add(new String[]{“a”, “b”, “d”}); 结果是 [a, b, c] [a, b, d] [a, b, c] 其中[a,b,c]重复,因此散列函数不能按预期工作。 我将如何重写String数组的Hash方法。 或者就此而言,通用数组? 有没有更好的方法来完成我想要做的事情?

边界匹配器正则表达式(\ b)下面的代码片段问题

我的意见: 1. end 2. end of the day or end of the week 3. endline 4. something 5. “something” end 基于上述讨论,如果我尝试使用此代码段替换单个字符串,它会成功删除该行中的相应单词 public class DeleteTest { public static void main(String[] args) { // TODO Auto-generated method stub try { File file = new File(“C:/Java samples/myfile.txt”); File temp = File.createTempFile(“myfile1”, “.txt”, file.getParentFile()); String delete=”end”; BufferedReader reader = […]

Cassandra – 有没有办法限制异步查询的数量?

我想知道是否有办法限制cassandra java驱动程序同时执行的查询数量? 目前,我执行了很多查询,如下所示: … PreparedStatement stmt = session.prepare(“SELECT * FROM users WHERE id = ?”); BoundStatement boundStatement = new BoundStatement(stmt); List futures = Lists.newArrayListWithExpectedSize(list.length); for(String id : list ) { futures.add(session.executeAsync(boundStatement.bind(id))); } for (ListenableFuture future : futures) { ResultSet rs = future.get(); … // do some stuff } 不幸的是,这可能导致NoHostAvailableException。 谢谢。