Skip to main content

Sort and Remove Duplicates in Dart

Sort and Remove Duplicates in Dart

How to Sort and Remove Duplicates from an Array in Dart

Question:

How can I manually sort an array and remove duplicates when the array contains different data types (e.g., integers, strings, booleans) in Dart?

Answer:

Below is a manual implementation in Dart to handle this:

Solution 1: Manual Deduplication and Sorting

void main() {
  // Step 1: Input array with mixed data types and duplicates
  List array = [42, "hello", 3.14, "world", 42, "hello", true, false, 3.14];

  // Step 2: Remove duplicates manually
  List uniqueArray = [];
  for (var element in array) {
    if (!uniqueArray.contains(element)) {
      uniqueArray.add(element);
    }
  }

  // Step 3: Sort the array manually
  for (int i = 0; i < uniqueArray.length - 1; i++) {
    for (int j = i + 1; j < uniqueArray.length; j++) {
      // Compare elements as strings to handle mixed data types
      if (uniqueArray[i].toString().compareTo(uniqueArray[j].toString()) > 0) {
        // Swap elements
        var temp = uniqueArray[i];
        uniqueArray[i] = uniqueArray[j];
        uniqueArray[j] = temp;
      }
    }
  }

  // Step 4: Output the result
  print(uniqueArray);
}

Solution 2: Using Built-in Methods

If you prefer to use Dart's built-in methods, here's another solution:

void main() {
  // Input array with mixed data types and duplicates
  List array = [42, "hello", 3.14, "world", 42, "hello", true, false, 3.14];

  // Remove duplicates by converting to a Set, then back to a List
  List uniqueArray = array.toSet().toList();

  // Sort the list using a custom comparator
  uniqueArray.sort((a, b) {
    // Convert to strings to enable comparison across data types
    return a.toString().compareTo(b.toString());
  });

  // Print the result
  print(uniqueArray);
}

Comparison of Solutions:

  • Solution 1: Demonstrates manual logic for learning and customization.
  • Solution 2: Utilizes Dart's built-in methods for simplicity and efficiency.

Output for Both Solutions:

[3.14, 42, false, hello, true, world]

Both solutions achieve the same result, but Solution 1 provides more control for educational purposes.

Written by Ayush Gupta, a passionate Flutter developer with expertise in Dart and UI/UX design.

Comments

Popular posts from this blog

Flutter Interview Preparation Topics

Flutter Interview Preparation Flutter Interview Preparation 1. Core Flutter Concepts **Widgets**: - StatelessWidget vs. StatefulWidget. - InheritedWidget and InheritedModel. - Custom Widgets (Creating reusable components). **State Management**: - Provider, Riverpod, Bloc/Cubit, Redux, or GetX. - Compare and contrast state management approaches. - Handling global and local state. **Navigation and Routing**: - `Navigator 1.0` vs. `Navigator 2.0`. - Named routes and deep linking. - Implementing nested navigation. **Lifecycle**: - App lifecycle (`AppLifecycleState`). - Widget lifecycle (`initState`, `dispose`, etc.). 2. Advanced Flutter Development **Performance Optimization**: - Efficient...

API Integration in Flutter - A Step-by-Step Guide

API Integration in Flutter - A Step-by-Step Guide API Integration in Flutter - A Step-by-Step Guide Learn how to integrate APIs into your Flutter app with this easy-to-follow tutorial. Step 1: Add Dependencies Start by adding the necessary dependencies for HTTP requests and JSON handling in your pubspec.yaml file. dependencies: flutter: sdk: flutter http: ^0.13.3 Run flutter pub get to install the dependencies. Step 2: Create a Service Class for API Calls Next, create a Dart file (e.g., api_service.dart ) to handle your API logic. Below is an example of a simple GET request function: import 'dart:convert'; import 'package:http/http.dart' as http; class ApiService { final String baseUrl; ApiService({required this.baseUrl...

How, Purpose, and When to Use Google ML Kit in Flutter

How, Purpose, and When to Use Google ML Kit in Flutter How, Purpose, and When to Use Google ML Kit in Flutter Purpose of Google ML Kit in Flutter Google ML Kit simplifies adding AI features to mobile applications. Its primary purposes include: On-Device Machine Learning: Perform AI tasks without requiring an internet connection, ensuring low latency, privacy, and faster processing. Pre-trained Models: Use Google's robust, pre-trained models without needing ML expertise. Versatile AI Features: Enable functionalities like: Text recognition Barcode scanning Image labeling Face detection Pose detection Language identification Translation Entity extraction Smart replies When to Use Google ML Kit You should use Google ML Kit when: You need pre-built AI features withou...