Book Image

Java Fundamentals

By : Gazihan Alankus, Rogério Theodoro de Brito, Basheer Ahamed Fazal, Vinicius Isola, Miles Obare
Book Image

Java Fundamentals

By: Gazihan Alankus, Rogério Theodoro de Brito, Basheer Ahamed Fazal, Vinicius Isola, Miles Obare

Overview of this book

Since its inception, Java has stormed the programming world. Its features and functionalities provide developers with the tools needed to write robust cross-platform applications. Java Fundamentals introduces you to these tools and functionalities that will enable you to create Java programs. The book begins with an introduction to the language, its philosophy, and evolution over time, until the latest release. You'll learn how the javac/java tools work and what Java packages are - the way a Java program is usually organized. Once you are comfortable with this, you'll be introduced to advanced concepts of the language, such as control flow keywords. You'll explore object-oriented programming and the part it plays in making Java what it is. In the concluding chapters, you'll get to grips with classes, typecasting, and interfaces, and understand the use of data structures, arrays, strings, handling exceptions, and creating generics. By the end of this book, you will have learned to write programs, automate tasks, and follow advanced courses on algorithms and data structures or explore more advanced Java courses.
Table of Contents (12 chapters)
Java Fundamentals
Preface

Implementing a Custom Linked List


A list has two implementations:

  • ArrayList: This is implemented using arrays as the underlying data structure. It comes with the same limitations as arrays.

  • Linked List: Elements in linked lists are distributed across the memory, contrary to in an array, where they are contiguous.

Disadvantages of ArrayList

Disadvantages of ArrayList are as follows:

  • Though ArrayList is dynamic and the size need not be mentioned during creation. However as the size of arrays is fixed, therefore ArrayLists often need to be implicitly resized when more elements are added to the list. Resizing follows the procedure of creating a new array and adding all the elements of the previous array into a new array.

  • Inserting a new element at the end of the ArrayList is often faster than adding in between, however, it's expensive when elements are added in between the list, because room has to be created for the new elements, and to create room existing elements have to shift.

  • Deleting the last...