Java Arrays Examples

Java Technologies - জাভা উদাহরন (Java  Examples)
141
141

Java তে Arrays একটি গুরুত্বপূর্ণ ডেটা স্ট্রাকচার যা এক ধরনের একই ধরণের ডেটাকে একটি একক ভ্যারিয়েবলে সংরক্ষণ করতে ব্যবহৃত হয়। নিচে কিছু Java Arrays Examples দেওয়া হলো যা আপনাকে Arrays এর মৌলিক ধারণা এবং ব্যবহার বুঝতে সাহায্য করবে।

1. Array Declaration and Initialization

এই উদাহরণে, একটি integer array ডিক্লেয়ার এবং ইনিশিয়ালাইজ করা হয়েছে এবং তারপর সেটির মান প্রিন্ট করা হয়েছে।

public class ArrayExample {
    public static void main(String[] args) {
        // Array Declaration and Initialization
        int[] numbers = {1, 2, 3, 4, 5};

        // Printing the array elements
        for (int i = 0; i < numbers.length; i++) {
            System.out.println(numbers[i]);
        }
    }
}

ব্যাখ্যা:

  • int[] numbers দিয়ে একটি integer array ডিক্লেয়ার করা হয়েছে।
  • numbers.length দিয়ে অ্যারে এর আকার জানা যায় এবং তারপর for লুপ দিয়ে অ্যারের সব উপাদান প্রিন্ট করা হচ্ছে।

2. Array of Strings

এই উদাহরণে, String Array ব্যবহার করে কয়েকটি স্ট্রিং সংরক্ষণ করা হয়েছে এবং সেটি প্রিন্ট করা হয়েছে।

public class StringArrayExample {
    public static void main(String[] args) {
        // Array of Strings
        String[] fruits = {"Apple", "Banana", "Mango", "Pineapple"};

        // Printing the array elements
        for (String fruit : fruits) {
            System.out.println(fruit);
        }
    }
}

ব্যাখ্যা:

  • এখানে String Array ডিক্লেয়ার করা হয়েছে এবং প্রতিটি ফ্রুটের নাম for-each loop দিয়ে প্রিন্ট করা হচ্ছে।

3. Multidimensional Array (2D Array)

এই উদাহরণে, 2D Array (দ্বি-মাত্রিক অ্যারে) ব্যবহার করা হয়েছে যেখানে সারি ও স্তম্ভ (rows and columns) রয়েছে।

public class TwoDimensionalArrayExample {
    public static void main(String[] args) {
        // 2D Array Initialization
        int[][] matrix = {
            {1, 2, 3},
            {4, 5, 6},
            {7, 8, 9}
        };

        // Printing the 2D array
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[i].length; j++) {
                System.out.print(matrix[i][j] + " ");
            }
            System.out.println();
        }
    }
}

ব্যাখ্যা:

  • 2D Array ডিক্লেয়ার এবং ইনিশিয়ালাইজ করা হয়েছে।
  • দুটি নেস্টেড for লুপ ব্যবহার করা হয়েছে 2D অ্যারের সব উপাদান প্রিন্ট করতে।

4. Array Manipulation (Adding/Updating Elements)

এই উদাহরণে, অ্যারের উপাদান যোগ করা এবং আপডেট করা হয়েছে।

public class ArrayManipulationExample {
    public static void main(String[] args) {
        // Initializing array
        int[] numbers = {10, 20, 30, 40, 50};

        // Updating an element at index 2
        numbers[2] = 100;

        // Adding an element at the end (since arrays have fixed size, this part requires creating a new array)
        int[] newNumbers = new int[numbers.length + 1];
        for (int i = 0; i < numbers.length; i++) {
            newNumbers[i] = numbers[i];
        }
        newNumbers[numbers.length] = 60; // Adding 60 at the end

        // Printing updated array
        for (int number : newNumbers) {
            System.out.println(number);
        }
    }
}

ব্যাখ্যা:

  • এখানে একটি অ্যারে তৈরি করা হয়েছে এবং একটি উপাদান আপডেট করা হয়েছে।
  • পরবর্তীতে একটি নতুন অ্যারে তৈরি করা হয়েছে এবং সেখানে একটি নতুন উপাদান যোগ করা হয়েছে।

5. Array Sorting

এই উদাহরণে, Arrays.sort() মেথড ব্যবহার করে একটি অ্যারে সজ্জিত করা হয়েছে।

import java.util.Arrays;

public class ArraySortingExample {
    public static void main(String[] args) {
        int[] numbers = {5, 3, 8, 1, 2};

        // Sorting the array
        Arrays.sort(numbers);

        // Printing sorted array
        for (int number : numbers) {
            System.out.println(number);
        }
    }
}

ব্যাখ্যা:

  • Arrays.sort() মেথড ব্যবহার করে অ্যারের উপাদানগুলো সজ্জিত (ascending order) করা হয়েছে।

6. Finding Maximum and Minimum in an Array

এই উদাহরণে, একটি অ্যারের মধ্যে maximum এবং minimum মান খুঁজে বের করা হয়েছে।

public class MaxMinArrayExample {
    public static void main(String[] args) {
        int[] numbers = {15, 42, 7, 8, 31};

        int max = numbers[0];
        int min = numbers[0];

        // Finding maximum and minimum values
        for (int i = 1; i < numbers.length; i++) {
            if (numbers[i] > max) {
                max = numbers[i];
            }
            if (numbers[i] < min) {
                min = numbers[i];
            }
        }

        System.out.println("Maximum value: " + max);
        System.out.println("Minimum value: " + min);
    }
}

ব্যাখ্যা:

  • অ্যারের মধ্যে লুপ চালিয়ে সর্বোচ্চ (maximum) এবং সর্বনিম্ন (minimum) মান খুঁজে বের করা হয়েছে।

7. Copying an Array

এই উদাহরণে, একটি অ্যারে কপি করার পদ্ধতি দেখানো হয়েছে।

import java.util.Arrays;

public class ArrayCopyExample {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};

        // Using Arrays.copyOf to copy the array
        int[] copiedArray = Arrays.copyOf(numbers, numbers.length);

        // Printing the copied array
        System.out.println("Copied Array: " + Arrays.toString(copiedArray));
    }
}

ব্যাখ্যা:

  • Arrays.copyOf() মেথড ব্যবহার করে অ্যারের একটি কপি তৈরি করা হয়েছে।

8. Array IndexOutOfBoundsException Example

এই উদাহরণে ArrayIndexOutOfBoundsException এর বিষয়ে দেখানো হয়েছে যখন একটি ইনডেক্স অ্যারের সীমার বাইরে চলে যায়।

public class ArrayIndexOutOfBoundsExample {
    public static void main(String[] args) {
        int[] numbers = {10, 20, 30};

        try {
            // Trying to access an index outside the array size
            System.out.println(numbers[5]);
        } catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("Array Index Out Of Bounds Exception: " + e.getMessage());
        }
    }
}

ব্যাখ্যা:

  • এখানে একটি ভুল ইনডেক্স অ্যাক্সেস করার চেষ্টা করা হয়েছে এবং এটি একটি ArrayIndexOutOfBoundsException তৈরি করে।

9. Array of Objects Example

এই উদাহরণে, Array of Objects (অবজেক্ট অ্যারে) ব্যবহার করা হয়েছে।

class Car {
    String model;
    int year;

    Car(String model, int year) {
        this.model = model;
        this.year = year;
    }

    void displayInfo() {
        System.out.println("Model: " + model + ", Year: " + year);
    }
}

public class ArrayOfObjectsExample {
    public static void main(String[] args) {
        Car[] cars = {
            new Car("Toyota", 2020),
            new Car("Honda", 2018),
            new Car("Ford", 2022)
        };

        for (Car car : cars) {
            car.displayInfo();
        }
    }
}

ব্যাখ্যা:

  • Car অবজেক্টের একটি অ্যারে তৈরি করা হয়েছে এবং প্রতিটি অবজেক্টের তথ্য প্রিন্ট করা হচ্ছে।

Java Arrays এর মাধ্যমে ডেটা গুলি একত্রিত এবং কার্যকরীভাবে পরিচালনা করা যায়। আপনি Arrays ব্যবহার করে ডেটা সংরক্ষণ, পুনরুদ্ধার, সাজানো, এবং বিভিন্ন অপারেশন সম্পাদন করতে পারেন। উপরোক্ত উদাহরণগুলি Arrays এর মৌলিক ব্যবহার এবং তার বিভিন্ন কার্যকারিতা বুঝতে সাহায্য করবে।

Content added By

One-dimensional Array Example: এক-ডাইমেনশনাল অ্যারের ডিক্লারেশন এবং ইন্টারঅ্যাকশন

85
85

এক-ডাইমেনশনাল অ্যারে (One-dimensional Array) হল একটি ধরনের ডেটা স্ট্রাকচার যা এক ধরনের ডেটা একাধিক মান সংরক্ষণ করতে ব্যবহৃত হয়। এটি একটি সোজা লাইন বা রেঞ্জে উপাদানগুলি সন্নিবেশিত থাকে। এক-ডাইমেনশনাল অ্যারের মধ্যে একটি নির্দিষ্ট পরিমাণের উপাদান থাকে, এবং প্রত্যেকটি উপাদান ইনডেক্সের মাধ্যমে অ্যাক্সেস করা যায়।

এক-ডাইমেনশনাল অ্যারের ডিক্লারেশন এবং ইন্টারঅ্যাকশন (Java Example)

Java তে এক-ডাইমেনশনাল অ্যারে তৈরি করার জন্য আপনি dataType[] arrayName অথবা dataType arrayName[] এই ফরম্যাট ব্যবহার করতে পারেন।

উদাহরণ: এক-ডাইমেনশনাল অ্যারে তৈরি এবং উপাদান অ্যাক্সেস

public class OneDimensionalArrayExample {
    public static void main(String[] args) {
        // এক-ডাইমেনশনাল অ্যারে ডিক্লেয়ার করা এবং ইনিশিয়ালাইজ করা
        int[] numbers = {10, 20, 30, 40, 50}; // 5টি পূর্ণসংখ্যার মান যুক্ত করা

        // অ্যারের মান প্রিন্ট করা
        System.out.println("Array elements:");
        for (int i = 0; i < numbers.length; i++) {
            System.out.println("Element at index " + i + ": " + numbers[i]);
        }

        // নির্দিষ্ট ইনডেক্সে মান সেট করা
        numbers[2] = 100; // index 2 তে মান পরিবর্তন করা (30 থেকে 100)

        // অ্যারে উপাদান প্রিন্ট করা পরবর্তী পরিবর্তনের পর
        System.out.println("\nArray elements after modification:");
        for (int i = 0; i < numbers.length; i++) {
            System.out.println("Element at index " + i + ": " + numbers[i]);
        }

        // অ্যারের একটি নির্দিষ্ট মান এক্সেস করা
        System.out.println("\nElement at index 3: " + numbers[3]);
    }
}

কোড ব্যাখ্যা:

  1. এক-ডাইমেনশনাল অ্যারে ডিক্লারেশন এবং ইনিশিয়ালাইজেশন:
    • int[] numbers = {10, 20, 30, 40, 50}; — এখানে numbers নামক একটি এক-ডাইমেনশনাল অ্যারে ডিক্লেয়ার করা হয়েছে, যা 5টি পূর্ণসংখ্যা (integer) মান ধারণ করে।
  2. অ্যারের উপাদান প্রিন্ট করা:
    • একটি for লুপের মাধ্যমে অ্যারের প্রতিটি উপাদান প্রিন্ট করা হচ্ছে।
    • numbers.length দিয়ে অ্যারের আকার (সর্বোচ্চ ইনডেক্সের মান) পাওয়া যায়।
  3. অ্যারের মান পরিবর্তন করা:
    • numbers[2] = 100; এই লাইনটি অ্যারের ইনডেক্স 2-এ থাকা মান (30) পরিবর্তন করে 100 করে দিচ্ছে।
  4. নির্দিষ্ট ইনডেক্সে মান এক্সেস করা:
    • numbers[3] — এটি অ্যারের 3 নাম্বার ইনডেক্সের মানটি (যা ছিল 40, কিন্তু পরিবর্তন হবে না) অ্যাক্সেস করবে।

আউটপুট:

Array elements:
Element at index 0: 10
Element at index 1: 20
Element at index 2: 30
Element at index 3: 40
Element at index 4: 50

Array elements after modification:
Element at index 0: 10
Element at index 1: 20
Element at index 2: 100
Element at index 3: 40
Element at index 4: 50

Element at index 3: 40

প্রধান পয়েন্টস:

  • ডিক্লারেশন: int[] numbers = {10, 20, 30, 40, 50}; এখানে int[] দ্বারা অ্যারের ডেটা টাইপ (যেমন int, double, String ইত্যাদি) নির্ধারণ করা হয় এবং numbers অ্যারে নাম।
  • অ্যারে ইন্ডেক্স: Java তে অ্যারের ইনডেক্স 0 থেকে শুরু হয়। অর্থাৎ প্রথম উপাদানটির ইনডেক্স 0, দ্বিতীয়টির ইনডেক্স 1, তৃতীয়টির ইনডেক্স 2 ইত্যাদি।
  • লুপের মাধ্যমে অ্যারের উপাদান এক্সেস করা: for লুপের মাধ্যমে অ্যারের প্রতিটি উপাদান এক্সেস এবং প্রিন্ট করা যায়।
  • মান পরিবর্তন: কোনো নির্দিষ্ট ইনডেক্সে মান পরিবর্তন করা সহজ।

এক-ডাইমেনশনাল অ্যারে আরও উন্নত ব্যবহার:

  1. অ্যারে ইনপুট দেওয়া: আপনি ব্যবহারকারীর কাছ থেকে ইনপুট নিয়ে অ্যারে তৈরি করতে পারেন।

    উদাহরণ:

    import java.util.Scanner;
    
    public class ArrayInputExample {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            System.out.print("Enter the size of the array: ");
            int size = scanner.nextInt();
    
            int[] numbers = new int[size];  // অ্যারের আকার নির্ধারণ
    
            // অ্যারে উপাদান ইনপুট নেওয়া
            for (int i = 0; i < numbers.length; i++) {
                System.out.print("Enter element " + (i+1) + ": ");
                numbers[i] = scanner.nextInt();
            }
    
            // ইনপুট নেওয়া অ্যারে উপাদান প্রিন্ট করা
            System.out.println("Array elements entered:");
            for (int i = 0; i < numbers.length; i++) {
                System.out.println("Element at index " + i + ": " + numbers[i]);
            }
        }
    }
    
  2. অ্যারে ম্যাথমেটিক্যাল অপারেশন: আপনি অ্যারে নিয়ে বিভিন্ন গাণিতিক কাজ করতে পারেন যেমন, গড় বের করা, সর্বোচ্চ এবং সর্বনিম্ন মান বের করা ইত্যাদি।

এক-ডাইমেনশনাল অ্যারে Java তে খুবই গুরুত্বপূর্ণ এবং এটি প্রোগ্রামিংয়ের বেসিক ডেটা স্ট্রাকচার। অ্যারে ব্যবহার করে ডেটা সংরক্ষণ, সঞ্চালন এবং প্রক্রিয়া করা সহজ হয়। Java তে অ্যারে ব্যবহারে কীভাবে ডেটা এক্সেস করা এবং পরিবর্তন করা যায়, তা এই উদাহরণে দেখানো হয়েছে।

Content added By

Multi-dimensional Array Example: মাল্টি-ডাইমেনশনাল অ্যারের ব্যবহার

90
90

মাল্টি-ডাইমেনশনাল অ্যারে হলো এমন একটি অ্যারে, যেখানে একাধিক ডাইমেনশন (row, column, ইত্যাদি) থাকে। Java তে মাল্টি-ডাইমেনশনাল অ্যারে ব্যবহার করা হয় যখন আমাদের বিভিন্ন গ্রুপ বা সেগমেন্টের মধ্যে ডেটা স্টোর করার প্রয়োজন হয়। এটি আসলে একাধিক একক ডাইমেনশনাল অ্যারের একটি অ্যারে।

মাল্টি-ডাইমেনশনাল অ্যারে এর উদাহরণ:

1. 2D Array (2 Dimensional Array) উদাহরণ

2D অ্যারে একটি টেবিলের মতো হয়, যেখানে সারি (rows) এবং কলাম (columns) থাকে। এটি সাধারণত rows x columns আকারে থাকে।

public class TwoDimensionalArrayExample {
    public static void main(String[] args) {
        // 2D Array Declaration and Initialization
        int[][] matrix = {
            {1, 2, 3},
            {4, 5, 6},
            {7, 8, 9}
        };

        // Displaying the 2D Array
        System.out.println("2D Array (Matrix):");
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[i].length; j++) {
                System.out.print(matrix[i][j] + " ");
            }
            System.out.println(); // Move to the next line after each row
        }
    }
}

Explanation:

  • Matrix Declaration: int[][] matrix = {...} এইভাবে 2D অ্যারে ডিক্লেয়ার এবং ইনিশিয়ালাইজ করা হয়।
  • Accessing Elements: matrix[i][j] দ্বারা অ্যারের উপাদান অ্যাক্সেস করা হয় যেখানে i হলো রো এবং j হলো কলাম।
  • Nested Loops: একাধিক লুপ ব্যবহার করা হয়, প্রথম লুপ দিয়ে সারি (row) এবং দ্বিতীয় লুপ দিয়ে কলাম (column) এক্সেস করা হয়।

Output:

2D Array (Matrix):
1 2 3 
4 5 6 
7 8 9 

2. 3D Array (3 Dimensional Array) উদাহরণ

একটি 3D অ্যারে তিনটি ডাইমেনশন নিয়ে কাজ করে। এটি একটি অ্যারে যার প্রতিটি উপাদান অন্য একটি 2D অ্যারে ধারণ করে।

public class ThreeDimensionalArrayExample {
    public static void main(String[] args) {
        // 3D Array Declaration and Initialization
        int[][][] cube = {
            {
                {1, 2, 3},
                {4, 5, 6}
            },
            {
                {7, 8, 9},
                {10, 11, 12}
            }
        };

        // Displaying the 3D Array
        System.out.println("3D Array (Cube):");
        for (int i = 0; i < cube.length; i++) {
            for (int j = 0; j < cube[i].length; j++) {
                for (int k = 0; k < cube[i][j].length; k++) {
                    System.out.print(cube[i][j][k] + " ");
                }
                System.out.println(); // Move to the next row in the 2D layer
            }
            System.out.println(); // Move to the next 2D layer
        }
    }
}

Explanation:

  • 3D Array Declaration: int[][][] cube = {...} এখানে 3D অ্যারে ডিক্লেয়ার করা হয়।
  • Accessing Elements: cube[i][j][k] দ্বারা 3D অ্যারের উপাদান অ্যাক্সেস করা হয় যেখানে i হল ডাইমেনশন (layer), j হল রো এবং k হল কলাম।
  • Nested Loops: তিনটি নেস্টেড লুপ ব্যবহার করা হয়েছে যেখানে প্রতিটি লুপ একটি ডাইমেনশন এর জন্য।

Output:

3D Array (Cube):
1 2 3 
4 5 6 

7 8 9 
10 11 12 

3. Jagged Array (Non-Rectangular 2D Array) উদাহরণ

জ্যাগড অ্যারে এমন অ্যারে, যেখানে প্রতিটি রো’র কলামের সংখ্যা ভিন্ন হতে পারে (non-rectangular)। এটি একটি বিশেষ ধরনের 2D অ্যারে।

public class JaggedArrayExample {
    public static void main(String[] args) {
        // Jagged Array Initialization
        int[][] jaggedArray = new int[3][]; // 3 rows, but column sizes will vary
        jaggedArray[0] = new int[]{1, 2, 3};
        jaggedArray[1] = new int[]{4, 5};
        jaggedArray[2] = new int[]{6, 7, 8, 9};

        // Displaying the Jagged Array
        System.out.println("Jagged Array:");
        for (int i = 0; i < jaggedArray.length; i++) {
            for (int j = 0; j < jaggedArray[i].length; j++) {
                System.out.print(jaggedArray[i][j] + " ");
            }
            System.out.println(); // Move to the next row
        }
    }
}

Explanation:

  • Jagged Array Declaration: এখানে int[][] jaggedArray = new int[3][]; দিয়ে 3টি রো রয়েছে এমন অ্যারে ডিক্লেয়ার করা হয়েছে, তবে প্রতিটি রোর কলামের সংখ্যা আলাদা।
  • Initialization: পরে প্রতিটি রো আলাদাভাবে ইনিশিয়ালাইজ করা হয়েছে, যেখানে প্রথম রো’র 3টি কলাম, দ্বিতীয় রো’র 2টি কলাম এবং তৃতীয় রো’র 4টি কলাম রয়েছে।

Output:

Jagged Array:
1 2 3 
4 5 
6 7 8 9 

Java তে মাল্টি-ডাইমেনশনাল অ্যারে ব্যবহৃত হয় বিভিন্ন গ্রুপ বা সেগমেন্টের ডেটা একত্রিত করার জন্য, যেমন টেবিলের মতো ডেটা সংগ্রহ বা 3D গ্রিড বা ম্যাট্রিক্স তৈরি করতে। Java তে সাধারণত 2D অ্যারে বা 3D অ্যারে ব্যবহার করা হয়, তবে জ্যাগড অ্যারে (যেখানে প্রতিটি রো’র কলাম সংখ্যা আলাদা হতে পারে) ব্যবহার করেও ডেটা ধারণ করা যায়।

  • 2D অ্যারে: সারি এবং কলাম দিয়ে ডেটা ম্যানেজমেন্ট।
  • 3D অ্যারে: তৃতীয় ডাইমেনশন যুক্ত করে ডেটা স্টোরেজ।
  • জ্যাগড অ্যারে: ভিন্ন সাইজের কলাম সহ মাল্টি-ডাইমেনশনাল অ্যারে।

এগুলো Java তে Arrays এর বিস্তৃত ব্যবহার এবং তাদের ক্ষমতা বৃদ্ধির উদাহরণ।

Content added By

Jagged Array Example: ভিন্ন ভিন্ন দৈর্ঘ্যের Row সম্বলিত Array তৈরি

86
86

Jagged Array বা Array of Arrays হল এমন একটি অ্যারে যা একাধিক অ্যারে ধারণ করে, যেখানে প্রতিটি উপ-অ্যারের দৈর্ঘ্য ভিন্ন হতে পারে। এটি সাধারণ অ্যারের চেয়ে ভিন্ন কারণ সাধারণ অ্যারে একই দৈর্ঘ্যের উপাদান ধারণ করে, কিন্তু জ্যাগড অ্যারে প্রতিটি "রো" বা উপঅ্যারের দৈর্ঘ্য আলাদা হতে পারে।

Jagged Array এর বৈশিষ্ট্য:

  1. ভিন্ন দৈর্ঘ্য: প্রতিটি উপঅ্যারের দৈর্ঘ্য আলাদা হতে পারে।
  2. অ্যারে অবজেক্টের অ্যারে: এটি একটি অ্যারে যেখানে অন্যান্য অ্যারে গুলি উপাদান হিসেবে থাকে।

Jagged Array তৈরি করার উদাহরণ

উদাহরণ ১: একাধিক রো এবং ভিন্ন দৈর্ঘ্য সহ জ্যাগড অ্যারে

public class JaggedArrayExample {
    public static void main(String[] args) {
        // জ্যাগড অ্যারে ডিক্লেয়ার করা
        int[][] jaggedArray = new int[3][]; // 3টি রো আছে, তবে প্রতিটির দৈর্ঘ্য নির্ধারণ করা হয়নি

        // প্রতিটি রোর দৈর্ঘ্য আলাদা করে সেট করা
        jaggedArray[0] = new int[2]; // প্রথম রো, 2 উপাদান
        jaggedArray[1] = new int[4]; // দ্বিতীয় রো, 4 উপাদান
        jaggedArray[2] = new int[3]; // তৃতীয় রো, 3 উপাদান

        // অ্যারের উপাদান সেট করা
        jaggedArray[0][0] = 1; // প্রথম রো, প্রথম উপাদান
        jaggedArray[0][1] = 2; // প্রথম রো, দ্বিতীয় উপাদান

        jaggedArray[1][0] = 3; // দ্বিতীয় রো, প্রথম উপাদান
        jaggedArray[1][1] = 4; // দ্বিতীয় রো, দ্বিতীয় উপাদান
        jaggedArray[1][2] = 5; // দ্বিতীয় রো, তৃতীয় উপাদান
        jaggedArray[1][3] = 6; // দ্বিতীয় রো, চতুর্থ উপাদান

        jaggedArray[2][0] = 7; // তৃতীয় রো, প্রথম উপাদান
        jaggedArray[2][1] = 8; // তৃতীয় রো, দ্বিতীয় উপাদান
        jaggedArray[2][2] = 9; // তৃতীয় রো, তৃতীয় উপাদান

        // অ্যারের উপাদান প্রিন্ট করা
        for (int i = 0; i < jaggedArray.length; i++) {
            for (int j = 0; j < jaggedArray[i].length; j++) {
                System.out.print(jaggedArray[i][j] + " ");
            }
            System.out.println(); // নতুন লাইনে চলে যাওয়ার জন্য
        }
    }
}

আউটপুট:

1 2 
3 4 5 6 
7 8 9 

ব্যাখ্যা:

  1. প্রথমে, একটি জ্যাগড অ্যারে তৈরি করা হয়েছে: int[][] jaggedArray = new int[3][]; যেখানে ৩টি রো থাকবে, কিন্তু প্রতিটি রোর দৈর্ঘ্য পরে নির্ধারণ করা হবে।
  2. প্রতিটি রোর দৈর্ঘ্য আলাদা করে সেট করা হয়েছে:
    • প্রথম রো ২টি উপাদান ধারণ করবে (jaggedArray[0] = new int[2];)
    • দ্বিতীয় রো ৪টি উপাদান ধারণ করবে (jaggedArray[1] = new int[4];)
    • তৃতীয় রো ৩টি উপাদান ধারণ করবে (jaggedArray[2] = new int[3];)
  3. তারপর, প্রতিটি রোর ভিতরে উপাদানগুলো সেট করা হয়েছে এবং for লুপের মাধ্যমে এগুলো প্রিন্ট করা হয়েছে।

Jagged Array এর ব্যবহার:

  • ভিন্ন দৈর্ঘ্যের তথ্য সংরক্ষণের জন্য জ্যাগড অ্যারে ব্যবহার করা হয়। যেমন, আপনি যদি কয়েকটি গ্রুপের ডেটা সংরক্ষণ করতে চান, যেখানে প্রতিটি গ্রুপে সদস্যের সংখ্যা ভিন্ন হতে পারে, তবে আপনি জ্যাগড অ্যারে ব্যবহার করতে পারেন।
  • এটি মেমরি ব্যবস্থাপনায় আরও নমনীয়তা প্রদান করে কারণ প্রতিটি রো আলাদাভাবে মেমরি বরাদ্দ পায় এবং আপনি সঠিকভাবে প্রয়োজনীয় মেমরি সংরক্ষণ করতে পারেন।

জ্যাগড অ্যারে Java তে এমন একটি অ্যারে কনসেপ্ট যা একাধিক রো ধারণ করে, যেখানে প্রতিটি রোর দৈর্ঘ্য আলাদা হতে পারে। এটি বিশেষভাবে উপকারী যখন ডেটার আকার বা ফর্ম্যাট প্রতিটি রোর জন্য পরিবর্তিত হয়।

Content added By

Array Sorting Example: Arrays.sort() ব্যবহার করে অ্যারে সর্টিং

91
91

Java তে Arrays.sort() মেথড ব্যবহার করে সহজেই অ্যারে সজ্জিত (sort) করা যায়। এটি java.util.Arrays ক্লাসের একটি স্ট্যাটিক মেথড যা একটি অ্যারের উপাদানকে অ্যালফাবেটিক্যাল বা সান্নিধ্যিকভাবে (ascending or descending order) সজ্জিত করতে ব্যবহৃত হয়।

Arrays.sort() ব্যবহার করার উদাহরণ

এখানে একটি সাধারণ অ্যারে (যেমন, পূর্ণসংখ্যার অ্যারে) সজ্জিত করার উদাহরণ দেওয়া হলো। এই উদাহরণে আমরা দেখব কিভাবে Arrays.sort() মেথড ব্যবহার করে একটি পূর্ণসংখ্যার অ্যারে ascending অর্ডারে সাজানো যায়।

উদাহরণ ১: Ascending Order এ Integer Array Sort করা

import java.util.Arrays;

public class ArraySortingExample {
    public static void main(String[] args) {
        // একটি পূর্ণসংখ্যার অ্যারে ডিক্লেয়ার করা
        int[] numbers = {10, 2, 8, 6, 4, 3, 1, 9, 7};

        // অ্যারে সজ্জিত করা (Ascending Order)
        Arrays.sort(numbers);

        // সাজানো অ্যারে প্রিন্ট করা
        System.out.println("Sorted Array (Ascending Order): " + Arrays.toString(numbers));
    }
}

আউটপুট:

Sorted Array (Ascending Order): [1, 2, 3, 4, 6, 7, 8, 9, 10]

ব্যাখ্যা:

  • Arrays.sort(numbers); মেথডটি numbers অ্যারেটিকে ascending অর্ডারে সাজিয়েছে।
  • Arrays.toString(numbers) ব্যবহার করা হয়েছে অ্যারের উপাদানগুলো প্রিন্ট করতে।

উদাহরণ ২: Descending Order এ Integer Array Sort করা

Arrays.sort() শুধুমাত্র ascending অর্ডারে কাজ করে, তবে descending অর্ডারে sort করতে হলে, আমরা reverse order comparator ব্যবহার করতে পারি।

import java.util.Arrays;
import java.util.Collections;

public class ArraySortingDescendingExample {
    public static void main(String[] args) {
        // একটি পূর্ণসংখ্যার অ্যারে ডিক্লেয়ার করা
        Integer[] numbers = {10, 2, 8, 6, 4, 3, 1, 9, 7}; // Wrapper class Integer ব্যবহার করা
       
        // অ্যারে সজ্জিত করা (Descending Order)
        Arrays.sort(numbers, Collections.reverseOrder());

        // সাজানো অ্যারে প্রিন্ট করা
        System.out.println("Sorted Array (Descending Order): " + Arrays.toString(numbers));
    }
}

আউটপুট:

Sorted Array (Descending Order): [10, 9, 8, 7, 6, 4, 3, 2, 1]

ব্যাখ্যা:

  • Arrays.sort(numbers, Collections.reverseOrder()); এই লাইনটি অ্যারে numbers কে descending অর্ডারে সাজায়। এখানে Integer[] ব্যবহার করা হয়েছে কারণ Collections.reverseOrder() শুধুমাত্র অবজেক্ট টাইপের অ্যারে (যেমন Integer[]) এর জন্য কাজ করে।
  • Arrays.toString(numbers) ব্যবহার করে সাজানো অ্যারে প্রিন্ট করা হয়েছে।

উদাহরণ ৩: String Array Sorting (Alphabetical Order)

এখন, একটি String Array কে ascending অর্ডারে সাজানোর উদাহরণ দেখব।

import java.util.Arrays;

public class StringArraySortingExample {
    public static void main(String[] args) {
        // একটি String টাইপের অ্যারে ডিক্লেয়ার করা
        String[] fruits = {"Banana", "Apple", "Orange", "Mango", "Pineapple"};

        // অ্যারে সজ্জিত করা (Alphabetical Order)
        Arrays.sort(fruits);

        // সাজানো অ্যারে প্রিন্ট করা
        System.out.println("Sorted Array (Alphabetical Order): " + Arrays.toString(fruits));
    }
}

আউটপুট:

Sorted Array (Alphabetical Order): [Apple, Banana, Mango, Orange, Pineapple]

ব্যাখ্যা:

  • Arrays.sort(fruits); এই মেথডটি String অ্যারেটিকে alphabetically ascending অর্ডারে সাজায়।
  • Arrays.toString(fruits) ব্যবহার করে সাজানো String অ্যারে প্রিন্ট করা হয়েছে।

উদাহরণ ৪: Custom Sorting with Comparator

Java তে যদি আপনি নিজে কোনো কাস্টম ক্রমের (custom order) অনুসারে অ্যারে সাজাতে চান, তবে Comparator ব্যবহার করতে পারেন। এই উদাহরণে আমরা একটা কাস্টম কম্প্যারেটর ব্যবহার করব যেটি অ্যারের উপাদানগুলোকে descending অর্ডারে সাজাবে।

import java.util.Arrays;
import java.util.Comparator;

public class CustomSortingExample {
    public static void main(String[] args) {
        // একটি Integer অ্যারে ডিক্লেয়ার করা
        Integer[] numbers = {10, 2, 8, 6, 4, 3, 1, 9, 7};

        // কাস্টম কম্প্যারেটর ব্যবহার করে অ্যারে সজ্জিত করা (Descending Order)
        Arrays.sort(numbers, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2 - o1; // descending order
            }
        });

        // সাজানো অ্যারে প্রিন্ট করা
        System.out.println("Sorted Array (Custom Descending Order): " + Arrays.toString(numbers));
    }
}

আউটপুট:

Sorted Array (Custom Descending Order): [10, 9, 8, 7, 6, 4, 3, 2, 1]

ব্যাখ্যা:

  • Comparator ইন্টারফেস ব্যবহার করে একটি কাস্টম কম্প্যারেটর তৈরি করা হয়েছে, যেটি o2 - o1 দ্বারা descending অর্ডার প্রয়োগ করছে।
  • Arrays.sort(numbers, new Comparator<Integer>()) এইভাবে কাস্টম সোর্টিং করা হয়েছে।
  • Arrays.sort() মেথডটি Java তে অ্যারে সজ্জিত করার জন্য একটি সহজ এবং শক্তিশালী উপায়।
  • অ্যারে সজ্জিত করার জন্য আপনি ascending, descending এবং custom sorting (কম্প্যারেটর ব্যবহার করে) বিভিন্ন পদ্ধতি ব্যবহার করতে পারেন।
  • String Arrays, Integer Arrays, এবং custom object arrays সব ক্ষেত্রেই Arrays.sort() ব্যবহৃত হতে পারে।
Content added By

Array Copy Example: System.arraycopy() এর মাধ্যমে অ্যারে কপি করা

77
77

Java তে System.arraycopy() একটি প্রি-ডিফাইন্ড মেথড যা একটি অ্যারের উপাদান অন্য একটি অ্যারে বা একই অ্যারের মধ্যে কপি করার জন্য ব্যবহৃত হয়। এটি খুবই দ্রুত এবং কার্যকরী পদ্ধতি, বিশেষ করে বড় আকারের অ্যারে কপি করার জন্য।

System.arraycopy() এর সিঙ্কট্যাক্স:

System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
  • src: উৎস অ্যারে (যেখান থেকে ডেটা কপি করতে হবে)
  • srcPos: উৎস অ্যারের সেই ইনডেক্স থেকে কপি শুরু হবে
  • dest: গন্তব্য অ্যারে (যেখানে ডেটা কপি করা হবে)
  • destPos: গন্তব্য অ্যারের সেই ইনডেক্সে কপি শুরু হবে
  • length: কতগুলো উপাদান কপি করতে হবে

উদাহরণ ১: সাধারণ অ্যারে কপি করা

import java.util.Arrays;

public class ArrayCopyExample {
    public static void main(String[] args) {
        // উৎস অ্যারে
        int[] sourceArray = {1, 2, 3, 4, 5};

        // গন্তব্য অ্যারে (এখানে উৎস অ্যারের সাইজের সমান)
        int[] destinationArray = new int[5];

        // System.arraycopy() দিয়ে কপি করা
        System.arraycopy(sourceArray, 0, destinationArray, 0, sourceArray.length);

        // গন্তব্য অ্যারে প্রিন্ট করা
        System.out.println("Destination Array: " + Arrays.toString(destinationArray));
    }
}

কোডের ব্যাখ্যা:

  • System.arraycopy(): এটি উৎস অ্যারের প্রথম থেকে শেষ পর্যন্ত সমস্ত উপাদান গন্তব্য অ্যারে তে কপি করে।
  • Arrays.toString(): এটি গন্তব্য অ্যারের উপাদান গুলি সহজে প্রিন্ট করতে সাহায্য করে।

আউটপুট:

Destination Array: [1, 2, 3, 4, 5]

উদাহরণ ২: অংশবিশেষ অ্যারে কপি করা

import java.util.Arrays;

public class ArrayCopyExample {
    public static void main(String[] args) {
        // উৎস অ্যারে
        int[] sourceArray = {1, 2, 3, 4, 5, 6, 7, 8, 9};

        // গন্তব্য অ্যারে (এখানে বড় একটি অ্যারে তৈরি করা হয়েছে)
        int[] destinationArray = new int[5];

        // System.arraycopy() দিয়ে অংশবিশেষ কপি করা
        System.arraycopy(sourceArray, 2, destinationArray, 0, 5);

        // গন্তব্য অ্যারে প্রিন্ট করা
        System.out.println("Destination Array: " + Arrays.toString(destinationArray));
    }
}

কোডের ব্যাখ্যা:

  • System.arraycopy(sourceArray, 2, destinationArray, 0, 5): এটি sourceArray থেকে 2-য় ইনডেক্স (যথা 3) থেকে শুরু করে 5টি উপাদান কপি করবে এবং গন্তব্য অ্যারের প্রথম 5টি ইনডেক্সে রাখবে।

আউটপুট:

Destination Array: [3, 4, 5, 6, 7]

উদাহরণ ৩: একই অ্যারের মধ্যে কপি করা

import java.util.Arrays;

public class ArrayCopyExample {
    public static void main(String[] args) {
        // একটি অ্যারে তৈরি
        int[] arr = {1, 2, 3, 4, 5};

        // System.arraycopy() দিয়ে অ্যারের ভিতরই কপি করা
        System.arraycopy(arr, 1, arr, 2, 3);

        // অ্যারের পরিবর্তিত মান প্রিন্ট করা
        System.out.println("Modified Array: " + Arrays.toString(arr));
    }
}

কোডের ব্যাখ্যা:

  • System.arraycopy(arr, 1, arr, 2, 3): এটি arr অ্যারের প্রথম উপাদান থেকে 1 ইনডেক্স পরবর্তী 3টি উপাদান কপি করে 2 ইনডেক্স থেকে শুরু করে সেগুলি সংরক্ষণ করবে।

আউটপুট:

Modified Array: [1, 2, 2, 3, 4]

উদাহরণ ৪: একাধিক অ্যারে কপি করা

import java.util.Arrays;

public class ArrayCopyExample {
    public static void main(String[] args) {
        // প্রথম উৎস অ্যারে
        int[] array1 = {1, 2, 3};

        // দ্বিতীয় উৎস অ্যারে
        int[] array2 = {4, 5, 6};

        // গন্তব্য অ্যারে (দুটি উৎস অ্যারের সাইজের যোগফল)
        int[] destinationArray = new int[array1.length + array2.length];

        // দুটি অ্যারে কপি করা গন্তব্য অ্যারে তে
        System.arraycopy(array1, 0, destinationArray, 0, array1.length);
        System.arraycopy(array2, 0, destinationArray, array1.length, array2.length);

        // গন্তব্য অ্যারে প্রিন্ট করা
        System.out.println("Combined Array: " + Arrays.toString(destinationArray));
    }
}

কোডের ব্যাখ্যা:

  • প্রথমে array1 কপি করা হয়েছে গন্তব্য অ্যারের প্রথম অংশে।
  • তারপর array2 কপি করা হয়েছে গন্তব্য অ্যারের দ্বিতীয় অংশে।

আউটপুট:

Combined Array: [1, 2, 3, 4, 5, 6]

  • System.arraycopy() একটি খুবই কার্যকরী এবং দ্রুত পদ্ধতি যা অ্যারের উপাদান কপি করার জন্য Java তে ব্যবহৃত হয়।
  • এটি একাধিক অ্যারে কপি করতে, অংশবিশেষ কপি করতে এবং একই অ্যারের মধ্যে কপি করতে সাহায্য করে।
  • Arrays.toString() ব্যবহার করে অ্যারের মানগুলোকে সুন্দরভাবে প্রিন্ট করা যায়।
Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion