草庐IT

Iterator与Generator

全部标签

java - java.util.Iterator 的实现是否使用状态模式?

我只是在寻找一个合理的答案如何实现java.util.Iterator正在进入状态设计模式编辑请引用以下链接ExamplesofGoFDesignPatternsinJava'scorelibraries 最佳答案 那个,我不确定。据我所知,它是IteratorDesignPattern的一个实现。.但是,可以错误地认为它使用了StatePattern,因为调用next()会影响Iterator的状态目的。但是,IMO,它并不是真正的StatePattern实现,因为它不会更改必须执行操作的基础对象。维基百科有一个很好的Java示例

java - 增强的 for 循环不接受 Iterator

如果之前有人问过这个问题,请原谅。我的搜索没有提出任何其他类似的问题。这是让我在Java中感到惊讶的事情。显然,增强的for循环只接受java.lang.Iterable的数组或实例。.它不接受java.util.Iterator作为迭代的有效对象引用。例如,Eclipse显示以下代码的错误消息。它说:“只能迭代数组或java.lang.Iterable的实例”SetmySet=newHashSet();mySet.add("dummy");mySet.add("test");Iteratorstrings=mySet.iterator();for(Stringstr:strings)

java - 例如,将 Iterator<Object> 转换为 Set<String> 的最佳方式

类型转换Iterator到Set什么是最干净/最佳的实践方式? 最佳答案 publicSetgetBs(){Iteratoriterator=myFunc.iterator();Setresult=newHashSet();while(iterator.hasNext()){result.add((B)iterator.next();}returnresult;}当然,如果迭代器返回的所有A都不是B,它当然会失败。如果要过滤迭代器,那么使用instanceof:publicSetgetBs(){Iteratoriterator=my

java - 为什么 iterator.hasNext 不适用于 BlockingQueue?

我试图在BlockingQueue上使用迭代器方法,发现hasNext()是非阻塞的-即它不会等到添加更多元素,而是在没有元素时返回false。下面是问题:这是糟糕的设计还是错误的期望?有没有办法使用阻塞BLockingQueue的方法与它的父Collection类方法(例如,如果某些方法期望一个集合,我可以通过一个阻塞吗排队希望其处理将等到队列有更多元素)这是一个示例代码块publicclassSomeContainer{publicstaticvoidmain(String[]args){BlockingQueuebq=newLinkedBlockingQueue();SomeCo

Java Iterator实现编译错误: does not override abstract method remove()

为什么会出现以下编译错误:LRIterator不是抽象的,不会覆盖java.util.Iterator中的抽象方法remove()注意,实现是针对链表的publicIteratoriterator(){returnnewLRIterator();}privateclassLRIteratorimplementsIterator{privateDLLNodeplace;privateLRIterator(){place=first;}publicbooleanhasNext(){return(place!=null);}publicObjectnext(){if(place==null)

使用 LogProperties source generator 丰富日志

Nuget包 Microsoft.Extensions.Telemetry.Abstractions包含的新的日志记录sourcegenerator,它支持使用[LogProperties]将整个对象作为State与日志一起记录。我将展示一种方法来控制如何使用[LogProperties]对象自动丰富日志。示例您可以使用日志sourcegenerator创建一个如下所示的方法,并使用[LoggerMessage]属性对其进行装饰:publicstaticpartialclassLog{[LoggerMessage(EventId=0,Level=LogLevel.Error,Message="

java - java核心的Iterator违反单一职责原则

为什么java.util.Iterator接口(interface)有方法remove()?当然有时候这种方法是必要的,而且大家都已经习惯了它的存在。但实际上迭代器的主要和唯一目标只是提供访问容器元素。当有人想为此接口(interface)创建自己的实现,但由于任何原因不能或不想提供删除元素的能力时,他将被迫抛出UnsupportedOperationException。抛出该异常通常表示架构没有经过深思熟虑或存在设计缺陷。我真的不明白为什么会做出这样的决定。而且我猜它会更正确地分离一个特定的子接口(interface)来支持可选的方法:为什么remove()是Iterator的一部分

java - 来自给定 wsdl 文件的 "java form generator"

我正在尝试用java开发一个表单生成器,用户可以在其中编写wsdlurl并在ComboBox中获取Web服务支持的操作列表。当用户选择ComboBox中的一项时,他将看到使用wsdlurl生成的表单字段。我是网络服务技术的新手,在网上搜索网络服务解析器后,我决定使用Axis库。但是实在不知道应该解析wsdl文档的哪一部分我不是要创建Web服务的java类,我必须为任何wsdlurl生成表单字段。例如这是一个提供9个操作的web服务http://services.aonaware.com/DictService/DictService.asmxwsdl文件在这里:http://servi

java - hibernate 5 : generator class ="sequence" not working

我有以下映射:tracksdata_seq当我在Hibernate4.2中使用它时,一切都很顺利。现在我正在迁移到Hibernate5并面临以下问题:2015-10-0619:49:50DEBUGSQL:92-selectnextval('hibernate_sequence')2015-10-0619:49:50DEBUGSqlExceptionHelper:122-couldnotextractResultSet[n/a]org.postgresql.util.PSQLException:ERROR:relation"hibernate_sequence"doesnotexist如

你是怎么理解ES6中 Generator的?使用场景?

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助一、介绍Generator函数是ES6提供的一种异步编程解决方案,语法行为与传统函数完全不同回顾下上文提到的解决异步的手段:回调函数promise那么,上文我们提到promsie已经是一种比较流行的解决异步方案,那么为什么还出现Generator?甚至async/await呢?该问题我们留在后面再进行分析,下面先认识下GeneratorGenerator函数执行 Generator 函数会返回一个遍历器对象,可以依次遍历 Generator 函数内部的每一个状态形式上,Generator函数是一个普通函数,但是有两个特征:functi