Core java - Advance Topics
  • Welcome
  • Schedule
  • 1) Exception Handling
    • 1) Introduction to Exception Handling
    • 2) Categories of Exceptions
    • 3) Creating a method that throws an exception
    • 4) Creating Custom Exception Classes
    • 5)What happens when an exception is thrown?
      • 5.1) Creating try-catch-finally blocks
      • 5.2) Using a method that throws a checked exception
      • 5.3) Using a method that throws a runtime exception
      • 5.4) Using a method that throws an error
      • 5.5) Will a finally block execute even if the catch block defines a return statement?
      • 5.6) What happens if both a catch and a finally block define return statement?
      • 5.7) What happens if a finally block modifies the value returned from a catch block?
      • 5.8) Can a try block be followed only by a finally block?
      • 5.9) Does the order of the exceptions caught in the catch blocks matter?
      • 5.10) Can I rethrow an exception or the error I catch?
      • 5.11) Can I declare my methods to throw a checked exception instead of handling it?
      • 5.12) I can create nested loops, so can I create nested try-catch blocks too?
      • 5.13) Should I handle errors?
    • 6) Best Practices
    • 7) Cheat Sheet
    • 8) Problems
  • 2) Wrapper Classes and Enums
    • 2.1) Creating objects of the wrapper classes
    • Enums
  • 3) Inner Classes
    • 3.1) Static nested class (also called static inner class)
    • 3.2) Inner class (also called member class)
    • 3.3) Anonymous inner class
    • 3.4) Method local inner classes
    • CheatSheet
  • 4) Generics
    • Multiple Type parameters in Generic classes
    • Inheritance using Generics
    • Generic interfaces
    • Generic Methods
    • Bounded type parameters
    • Applications
  • 5) Equals and Hashcode
    • Problems
  • CompareTo method overview
  • Basic DS
    • 1) Simple Array List
    • 2) Simple HashMap
  • 5) Collections Framework - Part 1
    • Introducing the collections framework
    • Working with the Collection interface
      • The core Collection interface
      • Methods of the Collection interface
    • Creating and using List, Set, and Deque implementations
      • List interface and its implementations
      • Iterators
      • Sorting List using custom sorting technique
      • Comparable Interface
      • Custom Sorting using comparator
      • ArrayList - Examples and practice problems
    • Stack
    • Linked List
    • LinkedList Operations
  • 6) Collections Framework - Part 2
    • Sets
      • Set Types
      • Array to Set (vice versa)
    • Maps
    • TreeMap
    • Autoboxing And Unboxing
  • Collections Framework - Part 3
    • Basics : DS , Number System
    • Internal Working
      • HashMap
      • HashSet
  • 7) Reflection API
  • 8) Annotations
  • 9) Reading Input From Various Sources
    • File Handling
    • Reading From Xml
    • Reading From JSON
  • 10) Multi-threading (Concurrency)
    • Protect shared data
    • Thread-safe access to shared data
  • 11) Design Patterns
    • Singleton
    • DI
  • 12) Internal Working of JVM
  • 13) Garbage Collection
  • 14) More on Strings (Buffer and Builder)
  • 15) Cloning and Immutable Class
    • 16) Serialization And Deserialization
    • Untitled
  • JAVA 8
    • Interface Changes
    • Lambda
    • Method Ref
    • Optional
    • Streams
    • Predicates
  • Practice Tests
    • Test - Collections
    • OOPS
    • S-OOPS
Powered by GitBook
On this page

Was this helpful?

  1. 5) Collections Framework - Part 1

Linked List

Unless you are doing some fairly low level programming I doubt you will ever really have a good excuse to code your own linked list. If you are building some libraries that implement queues or thread libraries or something like that then maybe but that’s a rare form of development these days.

Linked lists are a great thing to learn and make for a host of good examples when learning how to program. They are conceptually simple but have many pitfalls and ways to expand and improve and learn about how to write programs. They make you get in touch with a lot of core issues in development that you aren’t used to thinking about outside of development. Because of that they are invaluable to learn about and make for good interview questions. That said, it is pretty unusual to actually code your own linked list in a professional job. There already exist libraries that implement linked lists under the covers that you use instead. Trust me, those libraries are way more efficient, thorough, fault-tolerant and useful than something you cook up on you own.

import java.util.LinkedList;

public class LinkedListExample {
	public static void main(String[] args) {

		LinkedList<Integer> linkedList = new LinkedList<Integer>();

		linkedList.add(23);
		linkedList.add(24);
		linkedList.add(25);

		System.out.println(linkedList);

		System.out.println("add first");
		linkedList.addFirst(65);
		System.out.println(linkedList);

		System.out.println("add last");
		linkedList.addLast(66);
		System.out.println(linkedList);

		System.out.println("remove first");
		int element = linkedList.removeFirst();
		System.out.println("element removed " + element);
		System.out.println(linkedList);

		System.out.println("remove last");
		int element1 = linkedList.removeLast();
		System.out.println("element removed " + element1);
		System.out.println(linkedList);
	}

}
[23, 24, 25]
add first
[65, 23, 24, 25]
add last
[65, 23, 24, 25, 66]
remove first
element removed 65
[23, 24, 25, 66]
remove last
element removed 66
[23, 24, 25]

PreviousStackNextLinkedList Operations

Last updated 6 years ago

Was this helpful?