在标准Java库中,查找两个列表是否包含完全相同的元素的最简单方法是什么?
如果两个列表是相同的实例,则无关紧要,如果列表的类型参数不同则无关紧要.
例如
List list1
List<String> list2;
// ... construct etc
list1.add("A");
list2.add("A");
// the function, given these two lists, should return true
Run Code Online (Sandbox Code Playgroud)
我知道可能有些东西盯着我:-)
编辑:为了澄清,我正在按顺序寻找完全相同的元素和元素数量.
编辑:谢谢你指出我看不见的明显答案:-)
虽然到目前为止给出的所有答案都是正确的,但有些答案比其他答案更正确,所以在接受之前我会等待一段时间以获得最好的四舍五入的答案.
出于测试目的,我必须生成一定大小的文件(以测试上载限制).
什么是在Linux上创建特定大小的文件的命令?
提高面向对象编程技能有什么好的挑战?
这次调查背后的想法是提供哪些练习对学习OOP有用的想法.
挑战应尽可能与语言无关,需要很少或不使用特定的库,或只需要最常见的库.尝试每个答案只包含一个挑战,因此投票将仅对应该挑战的优点.如果指出了所需的技能水平,以及为什么它是一项有用的练习背后的理由,也会很好.
然后可以将挑战的解决方案作为"如何..."问题的答案发布,并从此处链接.
例如:
我有很多XML文件,它们具有以下形式:
<Element fruit="apple" animal="cat" />
Run Code Online (Sandbox Code Playgroud)
我想从文件中删除.
使用XSLT样式表和Linux命令行实用程序xsltproc,我该怎么做?
到目前为止,在脚本中我已经有了包含我想要删除的元素的文件列表,因此单个文件可以用作参数.
编辑:这个问题原本缺乏意图.
我想要实现的是删除整个元素"元素",其中(fruit =="apple"&& animal =="cat").在同一文件中有许多名为"元素"的元素,我希望这些元素保留下来.所以
<Element fruit="orange" animal="dog" />
<Element fruit="apple" animal="cat" />
<Element fruit="pear" animal="wild three eyed mongoose of kentucky" />
Run Code Online (Sandbox Code Playgroud)
会成为:
<Element fruit="orange" animal="dog" />
<Element fruit="pear" animal="wild three eyed mongoose of kentucky" />
Run Code Online (Sandbox Code Playgroud) 披露:我正在处理的代码是大学课程.
背景:我要完成的任务是报告不同线程技术的效果.为此,我编写了几个类来响应客户端使用Java套接字的请求.我们的想法是向服务器发送请求并报告不同的线程策略如何处理这个问题.每个客户端将发出100个请求,并且在每次迭代中,我们将客户端数量增加50,直到出现故障.
问题:可重复且一致地发生异常:
Caused by: java.net.NoRouteToHostException: Cannot assign requested address at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
这种情况发生在几种情况下,包括客户端和服务器都在localhost上运行时.可以成功连接一段时间,尝试连接150个客户端后不久就会抛出异常.
我的第一个想法是它可能是Linux对打开文件描述符(1024)的限制,但我不这么认为.我还检查了套接字之间的任何和所有连接是否正确关闭(即在正确的finally
块内).
我对发布代码犹豫不决,因为我不确定哪些部分最相关,并且不希望在问题中有大量代码.
有没有人遇到过这个?如何避免NoRouteToHostException?
编辑(进一步的问题是斜体)
到目前为止,一些好的答案指向短暂的端口范围或RFC 2780.这两个都表明我有太多的连接打开.对于两者而言,似乎需要达到此限制的连接数表明在某些时候我没有关闭连接.
调试了客户端和服务器后,两者都被观察到了方法调用myJava-Net-SocketInstance.close()
.这表明连接正在关闭(至少在非例外情况下).这是正确的建议吗?
此外,是否还需要等待操作系统级别才能再次使用端口?如果在运行下一次尝试之前只需要短时间(或乐观地运行命令),则可以为每个50多个客户端单独运行程序.
编辑v2.0
在提供了良好的答案后,我修改了我的代码,使用方法setReuseAddress(true)与客户端上的每个Socket连接.这没有达到预期的效果,我仍然限制在250-300个客户端.程序终止后,运行该命令会netstat -a
显示TIME_WAIT状态中存在大量套接字连接.
我的假设是,如果套接字处于TIME-WAIT
状态,并且已使用该SO-REUSEADDR
选项设置,则任何尝试使用该端口的新套接字都能够 - 但是,我仍然收到NoRouteToHostException.
它是否正确? 还有什么办法可以解决这个问题吗?
我无法为以下场景找到正确的重构选项:
我有这样的代码(在Outer.java中):
public class Outer {
// ... class stuff
public static class Inner {
// ... inner class stuff
}
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种方法来选择Inner,并将其转换为顶级类,在它自己的.java
源文件中.我知道这很容易用复制/粘贴等手动完成,但内部类在很多地方被引用,我希望refactor选项能够处理它所引用的任何地方的变化.
我已经尝试过这个选项,Refactor -> Extract Class...
但是对于一个data
我不太了解的字段做了一些奇怪的事情.
Eclipse版本是3.5.1 Galileo.
如何将静态内部类重构为顶级类?
编辑:不敢相信我忽略了这样做的选择.感谢您的所有正确答案,给大家+1.我仍然需要接受一个答案,所以如果有更多有用的信息,例如与脚本有关,那么仍然有一个留下答案的目的.
我想写一个bash脚本,它将使用包含特定文件的所有目录的列表.我可以find
用来回显每个匹配文件的路径.我只想列出包含至少一个匹配文件的目录的路径.
例如,给定以下目录结构:
dir1/
matches1
matches2
dir2/
no-match
Run Code Online (Sandbox Code Playgroud)
命令(查找'matches*'
)仅输出路径dir1
.
作为额外的背景,我使用它来查找包含Java .class文件的每个目录.
问题:Eclipse在哪里存储它在启动时打开的文件列表?
背景:在Eclipse中安装了一个迅速崩溃的插件后,我的Eclipse工作区处于某种状态.启动时,构建工作区任务将无限期暂停20%.在我卸载插件之前,我想再给它一次机会.我有一种感觉,Eclipse暂停的原因是因为一个文件在崩溃时被打开,它试图在启动时重新打开.如果我可以在启动时阻止此文件打开,那么我有可能哄骗插件行为.问题是我不知道在Eclipse运行之间该文件列表的持久位置.
...在我发布这个问题之前的一秒钟,我意识到我可以删除导致问题的文件(duh).然而,搜索让我感到沮丧,想要找到答案.