草庐IT

java - Guava 缓存是否考虑驱逐选择的权重?

优秀的Guava库的最新版本更新了缓存api。CacheBuilder现在有一个maxmimumWeight()方法来强制缓存的最大权重。javadoc指出:Specifiesthemaximumweightofentriesthecachemaycontain.WeightisdeterminedusingtheWeigherspecifiedwithweigher,anduseofthismethodrequiresacorrespondingcalltoweigherpriortocallingbuild(com.google.common.cache.CacheLoader).

java - Google Guava 的 CacheLoader loadAll() 与 reload() 语义

我非常喜欢Guava11的CacheLoader(感谢Google!)的两件事是loadAll(),它允许我一次加载多个key,以及reload(),当它“过时”时,它允许我异步重新加载key"但旧值存在。我很好奇它们是如何一起玩的,因为reload()仅在一个键上运行。具体来说,扩展CachesExplained中的示例:LoadingCachegraphs=CacheBuilder.newBuilder().maximumSize(1000).refreshAfterWrite(1,TimeUnit.MINUTES).build(newCacheLoader(){publicGra

java - Guava:保持插入顺序的 HashBasedTable?

我需要一种方法来为一个值保留两个键——这正是Guavan的HashBasedTable所做的。问题是它在遍历值时不保持插入顺序。有什么优雅的解决方案可以让它工作吗?它不一定是Guava,但我不想用依赖项来膨胀我的项目。我正在尝试使用提到的ImmutableTable-但我还没有找到任何示例。构建这样的表时,我到处都会遇到NPE:ImmutableTableunits;ImmutableTable.Builderbuilder=units.builder();builder.put(unit1.getType(),unit1.getName(),unit1);...units=build

java - 应用程序未在 websphere 8.5.5 中启动,但在 tomcat 中运行良好

我有一个可以部署在tomcat中的Web应用程序,但同一个应用程序没有在websphere8.5.5中启动。我已经检查了提供以下信息的SystemErr.log文件,我无法调试应用程序未启动的原因。如果我想了解更多关于问题的信息,我需要做什么。ApplicationServerVersion:Websphere8.5.5JavaVersion:javaversion"1.7.0_25"OpenJDKRuntimeEnvironment(rhel-2.3.10.4.el6_4-x86_64)[12/30/1312:43:01:144CET]000000abSystemErrRCaused

java - Google Guava 缓存默认过期

我想知道Guava缓存的默认过期策略。我的需求是,一次写,多次读。缓存应该永远不会过期。这是Guava的默认行为吗? 最佳答案 假设您正在谈论CacheBuilder来自GoogledocsBydefaultcacheinstancescreatedbyCacheBuilderwillnotperformanytypeofeviction. 关于java-GoogleGuava缓存默认过期,我们在StackOverflow上找到一个类似的问题: https:/

java - 先决条件库为 notNull 检查抛出 IllegalArgumentException

你知道ApacheCommonsValidate的一些不错的替代品吗?或GuavaPreconditions在检查对象是否为notnull(SpringAssert除外)时会抛出IllegalArgumentException而不是NullPointerException?我知道Javadocs说:Applicationsshouldthrowinstancesofthisclass[NullPointerException]toindicateotherillegalusesofthenullobject.不过,我就是不喜欢它。对我来说,NPE总是意味着我只是忘了在某处保护空引用。我

java - 使用 Google Guava 进行不区分大小写的排序

目前我在2个不同的地方使用以下2段代码来创建一个排序的、不可变的列表。returnOrdering.natural().immutableSortedCopy(iterable);和returnOrdering.usingToString().immutableSortedCopy(machines);但是,这使得“排序”大小写敏感。我如何使用guavaapi制作一个大小写不敏感排序的不可变列表? 最佳答案 我相信您将需要使用from使用String.CASE_INSENSITIVE_ORDER比较器的方法,就像这样。returnO

java - 使用 Guava 的字符串列表的字典顺序

简单的方法是什么lexicographicalordering使用Guava的字符串列表。我这样做:Lists=newArrayList("susen","soumen","dipak","abhi","zylo","zala","gautam","gautom","shaswasti","saswati");Listts=newArrayList(transform(s,newFunction(){@Overridepublicchar[]apply(Stringinput){returninput.toCharArray();}}));Collections.sort(ts,Cha

java - 是否可以使用 Java Guava 将函数应用于集合?

我想使用Guava将函数应用于集合、map等。基本上,我需要分别调整Table的行和列的大小,以便所有行和列的大小相等,执行如下操作:Tabletable=HashBasedTable.create();Maps.transformValues(table.columnMap(),newResizeFunction(BlockDimension.WIDTH));Maps.transformValues(table.rowMap(),newResizeFunction(BlockDimension.HEIGHT));publicinterfaceCell{intgetSize(Block

Java:只检查不可变对象(immutable对象)的equals()中的hashCode

我有一个不可变对象(immutable对象),例如笛卡尔空间中的一个节点。该类是不可变的,因此我缓存了hashCode以实现非常快速的散列。privatefinalinthashCode;privatefinaldoublex,y,z;publicNode(finaldoublex,finaldoubley,finaldoublez){this.x=x;this.y=y;this.z=z;this.hashCode=Objects.hashCode(this.x,this.y,this.z);}@Overridepublicbooleanequals(finalObjectobj){i