草庐IT

Indexing

全部标签

Java-复杂程序中的2D数组索引操作

在问我的问题之前,我想澄清一些事情。首先,我是Java和程序设计的新手。其次,这是我的第二篇文章,因此,如果我做错了什么,请放轻松。最后,我想解释一下为什么我做错了,而不是在对此帖子的任何回复中只是粘贴的解决方案。为了更好地理解该问题,我将编写分配信息,然后编写给定的Driver类,然后编写由Driver类访问的我的类代码。我的问题:如何使我的“建筑物”的左下角在2D数组上为[0][0]?Here's一个for循环的示例,该示例可将2D数组的左下角更改为[0][0],但我尝试将其实现到我的searchRoom方法中(玩家角色设置为myHidingPlaces索引),我可以t将myHid

java - Java 有 IndexSet 和 Range 类吗?

在Objective-CCocoa中,我们有NSIndexSet类,它通过保留范围数组来有效地存储一系列唯一索引。例如。集合1、2、...30、57将存储为范围1-30和57,而不是32个数字的数组。这有助于以简单快速的方式存储大量选择。例如,如果选择了表中1到100万之间的所有行,则索引集会折叠到一个很小的范围内,并且可以快速进行比较和相交。不幸的是,事实证明这对谷歌来说相当困难。是否有Java的等效类? 最佳答案 有ApacheCommonsIntRange 关于java-Java有

java - 具有快速索引的数据结构?

我需要一个具有O(1)indexOf操作的有序数据结构。我将对象指针存储在数据结构中。有任何想法吗?某种LinkedHashMap?查看“indexOf”的含义:List.indexOf(Object) 最佳答案 这个问题一开始就模棱两可。如果您能通过快速indexOf(..)操作来限定您的意思,那就太好了。您要在集合中存储什么类型的对象?寻找indexOf(..)是集合的唯一责任。简单地说,一种方法是维护一个索引每个Object或索引列表的键。HashMap>同样,这是含糊的,如果您指定要解决的问题的确切性质,可能会有所帮助。

java - 用于部分 %infix% 搜索的索引数据的数据结构是什么?

假设您有一个巨大的数据缓存,需要通过4种方式进行搜索:完全匹配前缀%%后缀%中缀%我正在使用Trie对于前3种类型的搜索,但除了对大量元素的顺序处理之外,我不知道如何处理第四种类型。 最佳答案 如果您的数据集很大,请考虑使用像ApacheSolr这样的搜索平台这样您就不会陷入性能困惑。 关于java-用于部分%infix%搜索的索引数据的数据结构是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com

java - 用 Java 制作整数键映射可以吗?

就像标题一样。做这样的东西可以吗:HashMapfoo=newHashMap();或者也许有更好的容器允许在任何索引处添加值?当说“更好”时,我的意思是“具有更好的性能”,然后是“更少的RAM使用”。ArrayListbar=newArrayList();bar.add(10_000,newObject());A想做一些类似上面这段代码的事情,但这当然不适用于ArrayList。我想列出的list很少;索引是分散的——这就是我考虑HashMap而不是ArrayList的原因。问候。 最佳答案 您的问题很笼统,从您指定的细节来看,Ha

java - 索引范围的上限是否总是假定为排他性的?

因此在Java中,无论何时给出索引范围,上限几乎总是排他的。来自java.lang.String:substring(intbeginIndex,intendIndex)Returnsanewstringthatisasubstringofthisstring.ThesubstringbeginsatthespecifiedbeginIndexandextendstothecharacteratindexendIndex-1来自java.util.Arrays:copyOfRange(T[]original,intfrom,intto)from-theinitialindexofthe

java - 如何在 Lucene 3.0.1 中索引 BigDecimal 值

我有一些BigDecimal值,应该为搜索编制索引。Lucene有NumericField,但它只有long、double、float和int的setter。我可以将它存储为字符串,但那样我就无法从NumericRangeQuery中受益。您如何存储BigDecimals?有什么最佳做法可以分享吗? 最佳答案 如果一切都失败了,考虑扩展AbstractField(类似于NumericField扩展它的方式),TokenStream(类似于NumericTokenStream的方式扩展它)和MultitermQuery(类似于Nume

java - 通过指定索引从 ArrayList 中检索元素

Java中是否有一种方法可以通过指定开始和结束索引来将对象列表从一个Arraylist获取到另一个ArrayList? 最佳答案 是的,您可以使用subListmethod:Listlist2=list1.subList(startIndex,endIndex);这将返回原始列表那部分的View,它不会复制数据。如果你想要一份副本:Listlist2=newArrayList(list1.subList(startIndex,endIndex)); 关于java-通过指定索引从Array

java - 写入 Lucene 索引,一次一个文档,随着时间的推移变慢

我们有一个程序,它持续运行,做各种事情,并更改我们数据库中的一些记录。这些记录使用Lucene编制索引。所以每次我们改变一个实体时,我们都会做类似的事情:打开数据库事务,打开LuceneIndexWriter在事务中对数据库进行更改,并使用indexWriter.deleteDocuments(..)然后indexWriter.addDocument(..)在Lucene中更新该实体.如果一切顺利,提交数据库事务并提交IndexWriter。这工作正常,但随着时间的推移,indexWriter.commit()需要越来越多的时间。最初它需要大约0.5秒,但经过数百次此类交易后,它需要超

java - 如何通过Java驱动在MongoDB中创建复合索引?

我想通过Java驱动程序在MongoDB中的Age和Name上创建复合索引,这是我的语法:coll.ensureIndex(newBasicDBObject("Age",1),newBasicDBObject("Name",-1));Listlist=coll.getIndexInfo();for(DBObjecto:list){System.out.println(o);}但它只创建1个索引而不是复合索引并给我结果:{"v":1,"key":{"_id":1},"ns":"EmployeeData.EmpPersonalData","name":"_id_"}{"v":1,"key"