我有我的服务器上的Java对象列表,通过一些序列化机制发送到客户端。偶尔List对象在服务器上得到更新,也就是说,一些对象被添加,一些被删除,而其他对象只是改变他们在List中的位置。我也想在客户端更新列表,但发送尽可能少的数据。特别是,我不想重新发送客户端上已有的对象。Java中的对象列表之间的最佳差异
是否有可用的库会产生某种差异从这两个列表,所以我只能发送差异和新的对象横跨电线?
我发现了unix diff命令的几个Java实现,但是这个算法对于更改顺序是不实用的。即。 [A,B,C] - > [C,B,A]可以发送,因为只有地方发生变化[1-> 3] [3-> 1],而差异则希望重新发送整个A和C对象据我所知)。
好方法,但这种解决方案不是最小的,而不还原步骤。例如。如果添加并稍后移除元素,则不应通过电线发送该元素。 (BTW对于迟到的回复感到抱歉) – Philipp 2010-04-19 06:41:09