Java 在带有ArrayList的方法中使用迭代器
有人能给我解释一下这个方法是什么意思吗Java 在带有ArrayList的方法中使用迭代器,java,Java,有人能给我解释一下这个方法是什么意思吗 clientOutputStreams = new ArrayList(); public void tellEveryone(String message) { Iterator it = clientOutputStreams.iterator(); while(it.hasNext()) { try { PrintWriter writer = (PrintWriter) it.n
clientOutputStreams = new ArrayList();
public void tellEveryone(String message) {
Iterator it = clientOutputStreams.iterator();
while(it.hasNext()) {
try {
PrintWriter writer = (PrintWriter) it.next();
writer.println(message);
writer.flush();
} catch(Exception ex){ex.printStackTrace();}
}//end while
}//end method
任何帮助都将不胜感激。它似乎正在实现一种模式,其中订户是输出流的目标 也就是说,您有一个输出流列表,每当有人调用
tellEveryone
方法时,消息将在其中发布。将输出流引用存储在列表中允许轻松添加“监听器”,在本例中,在不更改代码的情况下添加输出通道
这是您的代码:
clientOutputStreams = new ArrayList(); //Subscribers list
...
...
public void tellEveryone(String message) { //Publish your message writing it in each single outPutStream
Iterator it = clientOutputStreams.iterator(); //Get an iterator to traverse the subscriber list
while(it.hasNext()) {
try {
PrintWriter writer = (PrintWriter) it.next();
writer.println(message); //Print the message.
writer.flush();
} catch(Exception ex){ex.printStackTrace();} //Catch any posssible exception, (what happens if one stream is closed?)
}//end while
}//end method
例如,您可以使用日志,希望通过套接字连接发送消息,并将其存储在文件中。要执行该任务,只需将套接字的PrintWriter
对象和文件的PrintWriter
添加到clientOutputStream
一次。
然后,无论何时记录一条消息,您只需调用
tellEveryone
,它将存储在文件中并发送到连接接收器。此方法似乎将“clientOutputStreams”输出到“消息”,并将ASCII码转换为默认字符集。在我看来,迭代器看起来像一个poniter,它指向数组的元素。请更具体一点,同时尽量缩进您的代码:)谢谢您的回答。非常感谢