草庐IT

java - 将列表转换为 map - foreach 还是流?

我想转换一个List进入Map.列表的值应该作为键,映射值将被静态初始化。我想保持列表的顺序,因此使用LinkedHashMap,并忽略重复项。问题:使用java8stream有什么优势吗?应用程序接口(interface)?因为,比较以下内容,仅就语法而言,我永远不会选择冗长的流api,而是始终坚持旧的foreach循环://foreachMapmap=newLinkedHashMap();for(Stringk:abk){if(k!=null)map.put(k,STATIC_VAL);}//streamsMapmap2=abk.stream().filter(Objects::n

java - 在 Java 类型参数中,<? extends E> 仅表示严格的子类型?还是 E 也足够?

在Java类型参数中,是否仅表示严格的子类型?还是E也足够? 最佳答案 这并不严格;E就足够了。 关于java-在Java类型参数中,仅表示严格的子类型?还是E也足够?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3136680/

java - 我应该使用方法 close 还是 closeQuietly 来关闭输出流?

当我们需要关闭输出流时,我们有两种选择。closeQuietly表示关闭流,不会抛出任何异常。try{close(out)}catch(IOExceptione){}关闭try{close(out)}catch(IOExceptione){throwanException;}众所周知,输出流在关闭时会在文件末尾写入一个/几个字符,如果这些写入错误,文件也无法正确打开,例如ZipoutputStream。如果我使用第一个,我将面临关闭失败的风险。如果我使用第二个,它会让我的代码变得不友好。有人可以给我一些建议吗?很抱歉,问题描述不清楚。我的意思是如何安全地进行IO操作。如果资源的发布失败

java - 对于非常大的数据集,我应该使用 `HashSet` 还是 `TreeSet`?

我需要在数据结构中存储2到1500万个帐户(这是一个长度为15的String),用于查找目的和检查唯一性。最初我计划将它们存储在HashSet中,但我怀疑查找速度会因为哈希冲突而变慢,最终会比TreeMap(使用二分查找)慢。不需要对数据进行排序。我正在使用Java7。我有64G系统,其中48G专用于此应用程序。这个问题不是HashSetandTreeSetperformancetest的重复问题因为这个问题是关于将元素添加到Set的性能,而这个问题是关于检查现有Set的性能重复值。 最佳答案 如果您有48GB的专用内存来存储200

java - 我应该测试(复制)数据,还是只测试行为?

从设计的角度来看,我想知道我是否应该测试数据,特别是如果它是一个众所周知的数据(不是很容易配置的东西)——这可以应用于流行的文件扩展名、特殊IP地址等假设我们有一个紧急电话号码分类器:publicclassContactClassifier{publicfinalstaticStringEMERGENCY_PHONE_NUMBER="911";publicbooleanisEmergencyNumber(Stringnumber){returnnumber.equals(EMERGENCY_PHONE_NUMBER);}}我应该这样测试吗(“911”重复):@Testpublictes

java - Map putAll 覆盖还是添加?

当我使用.putAll()时,另一个.putAll()会覆盖map的内容吗?我的map会包含SomeOfMyObjects和SomeOfMyObjects吗?Mapblah=newHashMap();blah.putAll('SomeOfMyObjects')blah.putAll('SomeOfMyObjects')谢谢! 最佳答案 IfyouseedocsCopiesallofthemappingsfromthespecifiedmaptothismap(optionaloperation).Theeffectofthiscal

java - 反射调用方法还是使用继承的固定方法?

我正在开发一个小型Web库,想知道是否应该反射式地调用GET、POST、PUT等HTTP处理程序方法。固定方法首先是带有ifelse...block的变体调用基类中给出的方法,它们有一个默认实现,返回一个错误给客户端。由于对不受支持的方法的请求需要带有允许方法的header,因此我需要反射(reflection)性地查找哪些方法实际上被覆盖了(顺便说一下,就像ServletAPI所做的那样)。publicabstractclassResource{publicResponsehandle(HttpServletRequestrequest){Stringaction=request.g

java - 如何判断随机字符串是电子邮件地址还是其他内容

我不认为以前有人问过这个问题......我当然找不到有这个要求的东西。背景有一个API可以返回人员的ID。一般来说,ID应该被视为区分大小写......但是如果ID实际上是他们的电子邮件地址......并且你正在与这个API的一个不太出色的实现交谈,它返回他们的电子邮件地址的混合大小写版本,有很多乐趣……所以你正在与一个实现对话......它给你返回URL之类的东西作为ID,例如http://foo.bar.com/blahblahblah您接下来可能会与另一个实现对话...它会返回一些不明显的ID,例如as€jlhdésdj678hjghas7t7qhjdhg£您可能正在与一个很好的

java - 映射值应该声明为常量还是枚举?

我看到这散布在整个代码库中:@RequestMapping(value="myValue")我更愿意使用这样的东西:@RequestMapping(value=Constants.myValue)似乎使用@RequestMapping中的实际字符串值而不是常量来打破DRY。但这是好的代码实践吗?我应该改用枚举吗?我可能需要在代码库的其他地方使用Constants.myValue。 最佳答案 ShouldIuseanenuminstead?你不能。注释变量必须是编译时常量。枚举和字符串字面量都是,但您不能创建一个字符串枚举,而@Req

「还是谷歌好」,离职创业一年,我才发现训练大模型有这么多坑

如何在不到一年的时间里创办一家公司、筹集资金、购买芯片,并搭建出追赶Geminipro/GPT3.5的LLM?很多人都对构建基础架构和训练大语言模型和多模态模型感到好奇,但真正走完「从零开始」这一流程的人很少。我们普遍认为,储备技术人才是前提,掌握核心算法是关键,但实际上,工程实践中冒出来的挑战,也实在令人头疼。一年前,乘着大模型的热潮,YiTay离开了工作3年多的谷歌,参与创办了一家名为Reka的公司并担任首席科学家,主攻大型语言模型。在谷歌时,YiTay参与过许多知名的大型语言模型和多模态模型工作,包括PaLM、UL2、Flan-U-PaLM、LaMDA/Bard、ViT-22B、PaLI