草庐IT

fixed-point-iteration

全部标签

java - 采访 : Design an iterator for a collection of collections

为java中的集合设计一个迭代器。迭代器应该隐藏嵌套,允许您迭代属于所有集合的所有元素,就好像您在处理单个集合一样 最佳答案 这是一个老问题,但如今(2019年)我们有了JDK8+好东西。特别是,我们有流,这使得这个任务变得简单:publicstaticIteratorflatIterator(Collection>collections){returncollections.stream().filter(Objects::nonNull).flatMap(Collection::stream).iterator();}我正在过滤

java - 公开内部集合项时应该使用 Iterator 还是 Iterable?

我有一个带有私有(private)可变数据列表的类。我需要在以下条件下公开列表项:列表不应在外部修改;使用getter函数的开发人员应该清楚,他们获得的列表无法修改。应将哪个getter函数标记为推荐方法?或者你能提供更好的解决方案吗?classDataProcessor{privatefinalArrayListsimpleData=newArrayList();privatefinalCopyOnWriteArrayListcopyData=newCopyOnWriteArrayList();publicvoidmodifyData(){...}publicIterablegetU

java - 如何用 Streams 替换 Iterables.filter()?

我正在尝试从Guava迁移到Java8Streams,但不知道如何处理可迭代对象。这是我的代码,用于从可迭代对象中删除空字符串:Iterablelist=Iterables.filter(raw,//it'sIterablenewPredicate(){@Overridepublicbooleanapply(Stringtext){return!text.isEmpty();}});注意,这是一个Iterable,不是Collection.它可能包含无限数量的项目,我无法将它们全部加载到内存中。我的Java8替代品是什么?顺便说一句,有了Lamba,这段代码看起来会更短:Iterabl

java - eclipse Java : Template for the 'create field' quick fix suggestion?

在构造函数中,我经常分配给一个不存在的字段并选择Ctrl+1“创建类型为‘CurrentType’的字段‘memberField’”。问题是我希望该字段默认为最终字段,但事实并非如此。某处是否有此快速修复的模板?谢谢。 最佳答案 我没有看到任何明显的方法可以通过代码模板来做到这一点,也许是因为这不是Java语言的默认设置。虽然有blogpostsoutthere默认情况下提倡数据不变性,这不是使用的默认样式,因为已经是previouslydebatedinSO(或在manyotherSOquestions中)但是,您可以修改清理过程

java - RxJava Observable "Iteration"是如何工作的?

我开始尝试使用RxJava和ReactFX,并且对它们非常着迷。但在我进行实验时,我有很多问题,而且我一直在寻找答案。我观察到的一件事(没有双关语意)当然是惰性执行。通过下面的探索性代码,我注意到在调用merge.subscribe(pet->System.out.println(pet))之前没有执行任何操作。但令我着迷的是,当我订阅第二个订阅者merge.subscribe(pet->System.out.println("Feed"+pet))时,它再次触发了“迭代”。我想了解的是迭代的行为。它的行为似乎不像只能使用一次的Java8stream。它真的是一次遍历每个String并

java - 为什么 NodeList 不扩展 Collection 或 Iterable?

也许这不完全是一个编程问题。但是……为什么是org.w3c.dom.NodeList不是java.lang.Iterable的扩展名界面?这对我来说听起来很反直觉。特别是因为文档说:TheNodeListinterfaceprovidestheabstractionofanorderedcollectionofnodes,withoutdefiningorconstraininghowthiscollectionisimplemented.NodeListobjectsintheDOMarelive.TheitemsintheNodeListareaccessibleviaaninte

java - List Iterator的add()方法对迭代器做了什么?

我希望能够向ArrayList中插入元素使用ListIterator,但不知何故,即使在阅读了与ListIterator的添加方法相关的文档后,我仍然感到困惑类,如果我做这样的事情for(inti=0;i这段代码片段对我的列表迭代器做了什么,它把列表迭代器移到了哪里?当我运行以下代码时,我得到的结果是“Hi”-:importjava.util.ArrayList;importjava.util.ListIterator;publicclassListIter{publicstaticvoidmain(String[]args){String[]s={"Hi","I","am","Ank

Java 8 流 : iterate over Map of Lists

我有以下对象和map:MyObjectStringname;Longpriority;foobar;Map>anotherHashMap;我想在另一个map中转换map。结果映射的键是输入映射的键。结果映射的值是我的对象的属性“名称”,按优先级排序。排序和提取名称不是问题,但我无法将其放入结果映射中。我用旧的Java7方式来做,但如果可以使用流式API就好了。Map>result=newHashMap();for(Stringidentifier:anotherHashMap.keySet()){ListgeneratedList=anotherHashMap.get(identifi

java - 包含 Iterable 和 Iterator 的方法?

是否有一种简单的方法来检查元素是否包含在可迭代对象或迭代器中,类似于Collection.contains(Objecto)方法?即而不是必须写:Iterabledata=getData();for(finalStringname:data){if(name.equals(myName)){returntrue;}}我想写:Iterabledata=getData();if(Collections.contains(data,myName)){returntrue;}我真的很惊讶没有这样的东西。 最佳答案 在Java8中,您可以将I

HTML5 : should hreflang always point to a direct translation?

对于多语言网站,将这种链接放在头部是一个很好的做法:但是,accordingtoananswer问题Semanticmarkupforlanguageswitcher,语言切换器应该看起来像:TranslationsofthispageEnglishPolskiDeutsch据此,我有几个语义标记问题:SEO是否需要这两条规则?或者,如果我的网站上有语言切换器,则不再需要head中的链接?假设我在页面上:example.com/pl/kontakt。head(或nav)中的翻译链接应该指向:example.com/en/contact(直接翻译),还是仅指向example.com/en