带有链接列表的案例:
private void send(Socket clientSocket, LinkedList<Person> person) {
try {
ObjectOutputStream output;
output = new ObjectOutputStream(clientSocket.getOutputStream());
output.writeObject(person);
} catch (IOException ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
}
}
没有链接列表的案例:
private void send(Socket clientSocket, Person person) {
try {
ObjectOutputStream output;
output = new ObjectOutputStream(clientSocket.getOutputStream());
output.writeObject(person);
} catch (IOException ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
}
}
我看到了很多使用链表的源代码,但我不明白为什么。是一样的东西吗?如果没有,有什么区别?感谢
Person和LinkedList的区别在于,Person只是一个人,LinkedList是一个有序的人列表,即多个人。
如果不是在非常特定的情况下,则不应该使用LinkedList,通常使用List就足够了,因为您声明的是方法工作所需的接口,而不是特定的实现。
一旦您有了一个带有List的方法,无论您传递的是LinkedList或ArrayList,还是其他符合List语义的实现,都应该在功能上等效,并且"仅"在插入、检索或内存消耗方面提供更好的性能。
然而,如果你在列表上进行计算密集型操作,比如循环很多、添加或删除很多条目等,这些性能优势是有用的
当用于服务器调用时,我认为序列化LinkedList或其他实现(无论是使用java序列化还是任何其他序列化,如json等)的性能都是最低的。