Skip to content

Sortedset

SortedSet

Picture a self-arranging bookshelf 📚 No matter how you toss books in, they line up neatly by title or number. That quiet librarian is SortedSet.


🧠 What is SortedSet?

SortedSet is part of the Java Collections Framework

```java id="v1g4zp" SortedSet set = new TreeSet<>();

👉 It is a **Set that maintains elements in sorted order**

---

## 🔑 Key Characteristics

* ❌ No duplicate elements
* ✔ Elements are **always sorted**
* ❌ No index-based access
* ❌ Null not allowed (in most implementations like `TreeSet`)
* Sorting based on:

    * Natural order (`Comparable`)
    * OR custom `Comparator`

---

## 🏗️ Implementation

### ✔ TreeSet (Primary Implementation)

![Image](https://images.openai.com/static-rsc-4/WtsEj6-zvfIMBj1gYJ6Bk-gNVi9kgmXoueSerAQqwFrTK42wQcQ4nDE5P3XiSg1rA_kQufbMOPBdRMr8j0eS-PXjXl2jLEoWmKb5JYbyXeKeOBVYqT-gV8iWQlwY1aRCjk1k2JzjDXxc9FmahHuEFglf3vjS7Bk-4qTjz4XkiM0sG7O_6jKBu4UIdFLjsLbN?purpose=fullsize)

![Image](https://images.openai.com/static-rsc-4/rAY6KGhVNCbng0n9vuuHClXz8c9zjXsXgHxzgHff7dipVgIupmx2aU_D0W2cRTy1BxTiptsKMYfu4JzNdc5Es4jN1IXowjx98rNLbPg0B5AvpU_gtIFMSxzV3ibxLYOnfwzTAjEv_T0_ZIsRSN-sp1RskQ2tNIHeLLGN3SEiVuqzwfIbAzWzwXl92pxr0ekt?purpose=fullsize)

![Image](https://images.openai.com/static-rsc-4/ArvuStlqBYanh0iUBZewIsMDVyXZpbLXCvKE_P43vqQ8JoJIBnPm_dHj1oZuHmEhIWdb3VTYFQwU24kGNlEwI2aNxlmeACrCb4Xlq7og0oBsTzgx7nDBkjgxBIO1C07v8WOBRO-4TC_Sb3utEaFIQW-Lak8UPvyNOaE5srrRQEMcR4cQ4IQHTcqAbr5DN1ty?purpose=fullsize)

![Image](https://images.openai.com/static-rsc-4/Xk-cQUwKaQx2RfuJDnSHMU_7KwgVXrBuY07YVagFlU5fH5C5MehZARNp1llZpDX2Vc1yeZYLBFY9Os5K72a-sK-sQZ2HThNgDpmOo_ZPpniOP9fHGx5OeZLvFGiNYssV1w1CGHvjtl3qToQJ18-OK5NTA8JfDxpOIdRpBzT7_PJMpcWdHGW2Sj43Svm_FVUQ?purpose=fullsize)

![Image](https://images.openai.com/static-rsc-4/9-JjsaO7JIjiTdJNHrl8nNaylY9la-09l8Cm4DsZFZsBzuR_eraX7gIsNF-eb6neYVApLlykQMgdU61ZpviNLHS8FVEtWG3ft74-BtU8XraTavEwUFhT4p0dhR0RB22OKs-3Mn3LaQiExd0_hWeCeZTsr-wfYW3hRk0wxEvNfJkrFmUwKKq0ecmVS8OcVaQU?purpose=fullsize)

```java id="6n3o4z"
SortedSet<Integer> set = new TreeSet<>();

  • Uses Red-Black Tree
  • Time complexity → O(log n)

⚙️ Important Methods

🔹 Basic Methods

```java id="ntg2ru" set.add(10); set.add(5); set.add(20);

---

### 🔹 SortedSet Specific Methods

```java id="8w3w0d"
set.first();     // smallest element
set.last();      // largest element

set.headSet(15); // elements < 15
set.tailSet(10); // elements >= 10
set.subSet(5, 20); // range [5, 20)


🧠 Example

```java id="d4v0kc" SortedSet set = new TreeSet<>();

set.add(30); set.add(10); set.add(20);

System.out.println(set);

👉 Output:

```id="x3yq6q"
[10, 20, 30]

✔ Automatically sorted ✔ No duplicates


🔄 Custom Sorting

```java id="u5h5zx" SortedSet set = new TreeSet<>( (a, b) -> b.compareTo(a) );

set.add("A"); set.add("C"); set.add("B");

System.out.println(set);

👉 Output:

```id="1w9qhc"
[C, B, A]


⚔️ SortedSet vs Set

Feature SortedSet 🌿 Set
Order Sorted No guarantee
Duplicates Not allowed Not allowed
Extra methods Yes No

🎯 Interview Nuggets

  • SortedSet is an interface
  • Implemented by:

    • TreeSet
    • Extended by:

    • NavigableSet (adds more navigation methods)

    • Elements must be comparable or use comparator

🧠 Memory Trick

SortedSet = Set + Always Sorted 🌿