我有一本关于2010年数据结构的书,数据结构:Abstraction and Design Using Java, Second Edition.
它使用Java 6.
Java 6和7之间的数据结构是否存在显着差异?关于一个问题,那么Java 8呢?
如果可以的话,我想用这本书。
答案 0 :(得分:3)
Oracle有一个列出changes between Java 6 and Java 7的页面。
根据该页面和您图书的目录,我不会说有任何重要的数据结构"变化。
ForkJoinPool
符合条件,但可能会被视为更高级'}比书中的主题。还有一个针对TreeMap
的错误修复程序可以检测到您之前可以解决的错误,但这仍然很小,而且正确的代码不会因此而发生变化。
答案 1 :(得分:3)
是的,有变化。不,这与您是否使用该书无关。
本书旨在教您如何在一个基础层面上运行一系列基本数据结构和算法,以便您了解它们的工作方式和计算属性。虽然它们在此过程中涵盖了许多Java数据结构类和接口,但这是次要的。本书的目的不是成为Java数据结构API的详细教程。
有鉴于此,从Java 6到Java 7的变化大大超出了本书的范围:
forkjoin框架是经典线程的替代品......已经超出了范围。
排序算法的更改是实现细节。新的timsort算法是现有算法和技术的混合体,从教学角度来看并不具有指导意义。
Java 6和Java 7之间的核心API没有发生重大变化,这些变化会使本书中的内容过时。
所以,我建议你使用这本书......尤其是如果你已经有了这本书的话。
(但如果这里真正的问题是你的老师推荐一本不同的教科书,你应该比较两本书而不是问这样的问题。如果他们推荐另一本书的原因与Java无关,那么这个问题没有实际意义。 6与Java 7相比。)
如果基于Java 8的书的新版本处理lambdas和流,那么 可能是值得购买的。同时,这个适用于Java 6或Java 7。
答案 2 :(得分:2)
我知道,Java 6和Java 7之间唯一的主要区别是默认情况下非原始对象使用其他排序算法。
当您调用 java.util.Arrays.sort(Object [] array)或 java.util.Collections.sort(...)时,这是因为集合在排序之前复制到数组 请记住,对于原语,Java仍然使用双轴快速排序,并且可以使用“java.util.Arrays.useLegacyMergeSort”系统属性实现Java 7中的旧行为。