草庐IT

java - Java中不同 map 投影之间的转换

在我的GIS应用程序中,数据有时存储在“GoogleMercator”(以米为单位)中,有时存储在WGS84LatLon中。我想要一个可靠的库以“科学”的方式轻松地转换这些数据,而不是手动处理它,冒着大错误的风险。我遇到过Proj4,它显然能够做到这一点:http://trac.osgeo.org/proj但我找不到用于Java(或Groovy)的类似库。考虑到这些预测在在线应用程序中越来越普遍,这样的项目将非常有益。一个小jar会很棒:-)有Java端口,但没有任何文件可供下载:http://www.jhlabs.com/java/maps/proj/基本上我需要做这种类型的转换:h

java - 使用自定义值验证 map

我有以下map:Map我的目标是使用hamcrest匹配器验证此map的容量。我尝试了以下方法:assertThat(map,hasEntry("key",(MyCustomObject)hasItem(hasProperty("propertyName",equalTo("value")))));但是看起来hasItem方法只适用于集合。是否有任何替代方法来验证自定义对象?newMyCustomObject()在我的案例中不起作用,因为测试因哈希码相等而失败。而且,另一件事是我无法修改MyCustomObject类。 最佳答案 你

java - 通过比较进行字符串预测

今天我醒来,想是否可以只分析每次比较之间的时间来预测字符串。我创建了一个基本类(我知道它不是最好的算法,但它对我有用)来尝试证明这一点,答案是是。importjava.util.HashMap;importjava.util.Map;importjava.util.Map.Entry;publicclassTest{publicstaticfinalintiters=1000000;publicstaticfinalStringSECRET_WORD="85742";publicstaticfinalchar[]LETTERS=newchar[]{'1','2','3','4','5'

javascript - 捕获 Nashorn 的全局变量

我有一个Java7程序,它加载了数千个对象(组件),每个对象都有很多参数(存储在Map中),并在这些对象上执行各种Rhino脚本以计算其他派生参数,这些参数被存储回对象的Map.在运行每个脚本之前,一个Scope对象被创建,由对象的映射支持,在脚本运行期间用作JavaScript的范围。作为一个简单的例子,下面创建了一个HashMapa=10和b=20,并执行脚本c=a+b,结果为c=30.0存储回map中。虽然脚本看起来像是在创建一个全局变量c,Scope对象捕获它并将其存储在map中;使用不同的Scope执行的另一个脚本对象不会看到这个变量:publicclassRhino{pub

java - 使用 Java lambda 从两个 map 构建 map

我有一些代码需要帮助...我正在尝试使用两个map作为源并同时使用javalambda来构建mapMap>motorsMapping=newHashMap();motorsMapping.put("CAR",Collections.singletonList("AUDI"));motorsMapping.put("CAR_AND_BIKE",Arrays.asList("AUDI","BMW"));motorsMapping.put("BIKE",Collections.singletonList("BMW"));Map>models=newHashMap();models.put("

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

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

Java 8 lambdas 查找 map 列表的平均值

如何使用Java-8流/lambda,通过键找到映射列表的平均值?例子:List>users=Arrays.asList(newHashMap(){{put("weight",109.0);put("height",180.2);}},newHashMap(){{put("weight",59.0);put("height",186.2);}});Mapstatistics=//(?)System.out.println(statistics);//{weight=84.0,height=183.1)使用旧的好foreach非常简单,我想知道是否可以使用lambda来实现。我需要它的原

java - 使用java流将最后遇到的值放入 map

我有一些代码如下:MapupdateMap=updates.stream().filter(this::updatedValueIsNotNull).//Removenullupdatedvaluescollect(Collectors.toMap(u->u.getUpdatedValue().getKey(),//thenmergeintoamapofkey->value.Update::getUpdatedValue,(a,b)->b));//Iftwovalueshavethesamekeythentakethesecondvalue具体来说,我想从列表中获取值并将它们放入map

Java 8 - 用列表拼合 map

我有一个结构,例如Map>.我想按如下方式将函数应用于map。该方法采用key并使用map的名单。每个key有几个Map在列表中。我如何为Map的每个值将process方法应用于map的键?我能够使用forEach循环(见下文),但我觉得这不是以功能方式解决问题的最佳方法。TypeProcessorp=newTypeProcessor.instance();//Applythisfunctiontothekeyandeachmapfromthelist//ThecollecttheResultreturnedinalist.Resultprocess(Stringkey,Mapdata

Java 8 List<Map<String, Object>> 到 List<Map<String, Object>> 按键分组并按值计数

我有以下map列表List>listBeforeGroup=newArrayList>();Mapm1=newHashMap();m1.put("company","LG");m1.put("billType","A");m1.put("billPeriod","09-2018");Mapm2=newHashMap();m2.put("company","LG");m2.put("billType","A");m2.put("billPeriod","09-2018");Mapm3=newHashMap();m3.put("company","LG");m3.put("billType