Skip to main content

Linked List in Java - Collections Framework- DSA

Gist:

A Linked list is dynamic array where a group of object can be stored while following the insertion order and allow duplicates, the 2 type of linked list is singly and double linked lists, the default one is single linked list where the elements can be traversed only in forward direction this is because unlike array here the elements are stored at random locations and only the node of each element knows the address of the next element. A simple example would be our circut board here a point X may be connection to Y and Y connectioned to pont Z here the insertion order is preserved and we can know the next point only by following the signals from the previous point.

Same as the example but in Linked list each element has 2 parts in singly linked list where 1 part is the node with the adress to the next node and the other which is the actua data of that element like a post letter the envelop has the address and inside the contents. but in doubly linked list there are 3 parts 2 of them are nodes which has the address of previous and next element and the other one is the actual data of that element.

The insertion or deletion are in constant time so compared to arrayList the mega process will be avoided. 


Hierarchical order





Type of constructors

  • Empty argument constructor or the default constructor is the same as invoking any other objectobjectobjectobject here a new linked list object will be careated, do note that there is no scope for reserving memory for the number of elements as we add new element the size is maintained dynamically a new Li ked list is empty list. 

    LinkedList = new LinkedLis() ;

  • Conversion of other Collections like ArrayList, Vector, etc...to an linked List is possible with the following constructor.

  • LinkedList arraysFromVector = new LinkedList( VariableNameOfTheCollection );

  • //here any collection will be converted into an Linkedlist

Important Points

  • By default an empty LinkedList is created. 
  • Is Dynamically Growable and Shrinkable. 
  • Heterogeneous Objects are allowed.
  • There is no initial capacity 
  • No load factor is applicable here. 
  • Order of insertion is preserved
  • We can also use generic data-type such that the array acts like a homogenous.
  • Random acess interface is not implemented. 
  • Ideal if the operations are Insertion or deletion. 

Implementing Interfaces

  • Serializable
  • Cloneable
  • Iterable <E>
  • Collection <E>

Methods available to only the Arraylist object. 

  • .addFirst(Element) -> adds the element in the front of the ArrayList. 
  • .addLast(Element) -> add an element in the last part of the ArrayList. 
  • getFirst() --> returns the Object at the front of the Linked List. 
  • getLast() --> returns the last object in the linked list.
  • removeFirst() -> returns the object in the first and removes it from the linked list
  • removeLast() --> returns the last objects and removes the object from the linked list. 
Pros Cons
Ideal if insertion or deletion operations are more. Worst if there are lots of search operations as it needs to iterate through all the other elements. 
By default the elements can be traversed through forwad direction. Java LinkedList class is non-synchronized. 
Can hold duplicate elements. Does not implement random access interface.
Can hold null values.
The process of insertion or deletion is simple and fast.

Comments

Popular posts from this blog

Designer PDF Viewer - HackerRank Problems

Difficulty: EASY Problem : The objective here is to find the size of the highlighted area, and we are given the size's of all the alphabets, we have to find the largest alphabet in the highlighted word and then calculate the size of the rectangle so if the tallest character is 3 then the size of the box will be 3 * number of characters given. Visual representation of the selection : abc def ghij Inputs An array with the sizes of all alphabets a-z in order. A String of highlighted words. Important points to note The array which holds the height of each character in ascending order which means the arrays 0th index will have the height of a 1st index will have the height of b and so on and so forth in the end the hight of z will be there so it's easy to locate each character. A String with the highlighted word. This means we have got the characters inside the rectangle, all we have to find is ...

Literals of Base numbers in Java ( Octal , Hexadecimal, Decimal)

1. Overview: A literal key indicates the compiler how to interpret the value of the given data type, for numbers we can calculate the value by using Octal representation or hexadecimal representation but just typing out a hexadecimal value to an int will throw us an error because the compiler has no idea how to handle it but if we assign the java specified prefix for the required bases with some literals then the compiler will not throw us any error as it understands how to interpret the value.  Base Litrals Values Example Eg. Value Decimal none 0-9 int x = 10; x is 10 Octal 0 (zero) as the prefix 0-7 int x = 12; x is 10 Hexadecimal 0x or (zero) along with an x 0-9 and a-f or A-F int x = 0XA; x is 10 Binary or Base(2) Allowed Digits 0 and 1 int i = 10; and now the variable i has value 10. i...

Array List - Collections Framework in Java - DSA

Gist: An array list can store individual objects by following insertion order, here the initial capacity is 10 by default but can be modified as per the requirement, once the array list reaches its load factor then internal all the elements of the current array is copied to a new array with the new capacity and the reference variable will now be referring to this new array list and the old array will be dealt by the garbage collector. Hierarchical order Type of constructors Empty argument constructor or the default constructor is the same as invoking any other object here a new ArrayList is created with a default size of 10. Below is the most commonly used constructor by beginners and others alike. ArrayList array = new ArrayList(); //array has a capacity of 10 The default constructor above will allot only 10 slots but if you want the initial size to be 20 or 1000 you can do so with the following constructor this is ideal w...