An excellent book on complexity analysis, including the properties of popular and not-so-popular data structures, is Introduction to Algorithms, Second Edition, also referred to as CLRS. It's widely considered to be the bible of algorithms and their analysis.
Normally I would recommend CLRS, but since you specifically called out Java in your question, I recommend Objects, Abstraction, Data Structures and Design: Using Java version 5.0. It has really fantastic explanations of data structures and the algorithms that make them work.
The design and analysis of efficient data structures has long been recognized as a key component of the Computer Science curriculum. Goodrich, Tomassia and Goldwasser's approach to this classic topic is based on the object-oriented paradigm as the framework of choice for the design of data structures. For each ADT presented in the text, the authors provide an associated Java interface. Concrete data structures realizing the ADTs are provided as Java classes implementing the interfaces. The Java code implementing fundamental data structures in this book is organized in a single Java package, net.datastructures. This package forms a coherent library of data structures and algorithms in Java specifically designed for educational purposes in a way that is complimentary with the Java Collections Framework.
Course goals: As the middle coursein the first-year sequence, this course continues to focus on software design,from a variety of approaches to modeling problems to the alternatives andtradeoffs of data structure design and implementation to analyzing the performanceof those data structures and the associated algorithms. We could call thesethree themes design (How do we represent our problem so we can solve itwith software?), implementation (How do we decide which of the many alternativeswould be best for building this solution?), and communication (How can wecharacterize our solution, especially its efficiency in consuming machineresources under various conditions, in a way that other informaticians willunderstand?).
Head First Java, second edition, bySierra and Bates (optional). This breezy and irreverent text focuses onJava coding at greater length than Goodrich and Tamassia, but it doesn'tcover much about the core topics of data structures and algorithms.
Notes:
1. You will be enrolled in this course on Canvas where much of the material and other information needed for this course is located. Canvas can be accessed through the TUPortal
2. Access to the Temple Technology USAGE policy can be obtained through _docs.asp#T.
3. Any student who has a need for accommodation based on the impact of a disability should contact me privately to discuss the specific situation as soon as possible. Contact Disability Resources and Serrvices at 215-204-1280.
4. Freedom to teach and to learn are inseparable facets of academic freedom. The University hasd a policy on Student and Faculty and Academic Rights and Responsibilities which can be accessed through _no=03.70.02.Description The purpose of this course is to gain a basic knowledge of fundamental data structures and an understanding of their relationship to the performance of algorithms and programs. This includes an introduction to execution time analysis and to the proof of program correctness.
OUTLINE This is intended to give a general idea of the course but is subject to change.Week:1 Detailed development of a prototype solution to the Topological Sorting problem to illustrate programming methodology and the impact of data structure selection on program characteristics.2 Solutions to the maximum subsequence problem. Asymptotic analysis and proof of correctness of programs.3 Garwick's multiple stack management algorithm and a modified version.4 Binary tree traversals using stacks, linked inversion and constant storage (Robson and modified Robson).5 Parentheses and Binary trees.6 Trees and Stack permutations.7 Mid Term Examination8 Heaps, priority queues, Heapsort, Huffman Codes.9 Optimal Binary Search Trees.10 Binary search trees, balanced binary trees, AVL trees and splay trees.11 Strahler and pruning numbers, Disjoint Sets.12 Amortized Analysis and Examples.13 Minimum spanning trees.14 Graph Traversals, Shortest Paths, strongly connected components, biconnected graphs.
This book contains material about data structures and algorithms, presented in a reasonably readable manner with examples and guides to implementation. Unlike most similar texts, it also includes some reference to correctness of algorithms, an important concept in CPSC 331. Also has a student companion site, containing additional notes, hints to exerciese, and code fragments. This book is now available at the University of Calgary bookstore. This book can be ordered through Amazon or Chapters.