KEMBAR78
DSA in java | PPTX
DSA
Datastructure and algorithms for coding interviews
By
Saran Kumar R
Apply appropriate datastructure for efficiency
• ArrayList
• LinkedList
• HashSet
• TreeSet
• LinkedHashSet
• PriorityQueue(heap)
• HashMap
• TreeMap
• LinkedHashMap
• Stack
• Queue
ArrayList
ArrayList<Integer> a=new ArrayList<>();
when to use?
• unknown size.
• Accessing and retrieving elements
LinkedList
LinkedList<Integer> a=new LinkedList<>();
When to use?
• modifications in an list
• unknown size
Hash Set
HashSet<Integer> a=new HashSet<>();
When to use?
• To check if an element exist or not.
• To eliminate duplicates.
Tree Set
TreeSet<Integer> a=new TreeSet<>();
When to use?
• you want elements to be sorted.
LinkedHashSet
LinkedHashSet<String> a=new LinkedHashSet<>();
When to use?
• you want to access elements in the inserted order.
PriorityQueue(heap)
PriorityQueue<Integer> a=new PriorityQueue<>();
When to use?
• To find kth largest,smallest or most frequent,less frequent elements faster.
• Quick sort -> O(nlogn) heap-> O(n)
Hash Map
HashMap<String,Integer> a=new HashMap<>();
When to use?
• To store in key:value pairs.
• Store frequency of elements.
TreeMap
TreeMap<Integer,String> a=new TreeMap<>();
When to use?
• When you want keyset to be sorted.
a.put(3,”sk”); output: {1=D3, 2=yj, 3=sk, 7=yk}
a.put(2,”yj”);
a.put(7,”yk”);
a.put(1,”D3);
LinkedHashMap
LinkedHashMap<Integer,String> a=new LinkedHashMap<>();
When to use?
When you want keyset to be in inserted order.
a.put(3,”sk”); output: {3=sk, 2=yj, 7=yk, 1=D3}
a.put(2,”yj”);
a.put(7,”yk”);
a.put(1,”D3);
Stack
Stack<Integer> a=new Stack<>();
When to use?
• DFS
• Backtracking
Queue
Queue<Integer> a=new Queue<>();
When to use?
• BFS
• Level order traversal in tree

DSA in java