ওহ, জাভা অ্যারে. তারা শত শত শিক্ষানবিস সফ্টওয়্যার বিকাশকারীদের তীব্র ভালবাসা এবং ঘৃণার বস্তু। ইতিমধ্যেই শুরু করা অ্যারেতে উপাদান যোগ করা অসম্ভব, তারা বলেছে... আসলে, এটা সম্ভব, কিন্তু শাস্ত্রীয় অর্থে নয়... এবং এটা খুব সুবিধাজনক নয়। একটি অ্যারেতে নতুন উপাদান যুক্ত করা যা ইতিমধ্যেই শুরু করা হয়েছে এক ধরণের কৌশল। যাইহোক, এই কৌশলগুলি একটি সাক্ষাত্কারে কার্যকর হতে পারে ... এবং কখনও কখনও প্রোগ্রামারের চাকরিতে। আপনি ডেটা টাইপ ব্যবহার করে উপভোগ করছেন তা নিশ্চিত করতে এবং কীভাবে এটি দক্ষতার সাথে করতে হয় তা জানতে, আমরা একটি জাভা অ্যারেতে একটি নতুন উপাদান যুক্ত করার জন্য একটি নির্দেশিকা লিখেছি। তত্ত্ব এবং কোডের নমুনাগুলি সাবধানে পরীক্ষা করা ছাড়া, পোস্টে বৈশিষ্ট্যযুক্ত অনুশীলন সমস্যাগুলি পরীক্ষা করে সম্পূর্ণ করতে ভুলবেন না।
জাভা একটি অ্যারে কি
আসুন মনে করি যে অ্যারে কী এবং কীভাবে এটি জাভাতে তৈরি করা যায়। যদি আপনি এটি মনে রাখেন, তাহলে নির্দ্বিধায় পরবর্তী উপশিরোনাম "জাভা অ্যারেতে নতুন উপাদান যোগ করার 5 উপায়" এ যান। ওরাকলের অফিসিয়াল জাভা ডকুমেন্টেশন বলে যে অ্যারেগুলি একই ডেটা টাইপের সাথে সম্পর্কিত মানগুলির একটি সিরিজ। পূর্ণসংখ্যার একটি সেট জাভাতে একটি অ্যারের একটি নিখুঁত উদাহরণ । আপনি সংজ্ঞায়িত সমস্ত মান অ্যারের মধ্যে একটি নির্দিষ্ট অবস্থান আছে একটি সূচক বলা হয় । এখানে অ্যারে ঘোষণা এবং আরম্ভ করার উপায় আছে:
int[] myArray = new int[10];
int[] myArray1 = {1, 0, 3, 17, 5, 6, 7, 8, 9, 10}
প্রথম ক্ষেত্রে, আমরা একটি অ্যারে myArray সংজ্ঞায়িত করেছি এবং জাভাকে 10টি উপাদানের একটি অ্যারের জন্য স্থান বরাদ্দ করার জন্য তৈরি করেছি, দ্বিতীয় myArray1- এ , আমরা অবিলম্বে এতে 10টি মান প্রবেশ করিয়েছি। উভয় ক্ষেত্রেই, উপাদান 11 সহজভাবে অ্যারের মধ্যে ঠেলে দেওয়া যাবে না। অ্যারেগুলির সাথে ক্রিয়াকলাপ সম্পাদন করতে, বিকাশকারীরা একটি অ্যারেতে থাকা মানগুলির সূচকগুলি পরিচালনা করে৷ আমাদের কি করা উচিৎ? অ্যারেতে যোগ করার সবচেয়ে সাধারণ উপায়গুলো দেখে নেওয়া যাক।
জাভা অ্যারেতে নতুন উপাদান যোগ করার 5 উপায়
ঠিক আছে, এখানে আমাদের কৌশলগুলি অপরিবর্তনীয়কে পরিবর্তনযোগ্য বলে মনে করার জন্য।- একটি তালিকায় একটি অ্যারে রূপান্তর করুন
- বৃহত্তর ক্ষমতা সহ একটি নতুন অ্যারে তৈরি করুন এবং অ্যারেতে একটি নতুন উপাদান যোগ করুন
- System.arraycopy() বাস্তবায়ন করা হচ্ছে
- Apache Commons ব্যবহার করে অ্যারে কপি করা হচ্ছে
- ArrayCopyOf() পদ্ধতি প্রয়োগ করা হচ্ছে
1. একটি অ্যারেকে একটি তালিকায় রূপান্তর করা
যেহেতু আমরা সরাসরি একটি অ্যারেতে একটি নতুন উপাদান যোগ করতে পারি না, তাই পরবর্তী সেরা কাজটি হল তাদের তালিকায় রূপান্তর করা, নতুন উপাদান যুক্ত করা এবং মানগুলিকে আবার অ্যারেতে রূপান্তর করা। একটি অ্যারেকে একটি তালিকায় রূপান্তর করার প্রথম উপায় হল একটি নতুন ArrayList তৈরি করতে asList() ব্যবহার করা। একবার মানগুলির পরিসর সফলভাবে রূপান্তরিত হলে, মান সন্নিবেশ করতে ListAdd() ব্যবহার করুন। একবার আপনাকে আর কোনো অ্যারে সম্পাদনা করতে হবে না, toArray() পদ্ধতির সাহায্যে মূল ডেটা টাইপে আবার রূপান্তর করুন । সমস্ত পদ্ধতি এবং রূপান্তর সহ, এটি প্রথমে বিভ্রান্তিকর বলে মনে হতে পারে। আসুন জিনিসগুলি পরিষ্কার করতে asList() ব্যবহার করার উদাহরণটি একবার দেখে নেওয়া যাক ।
// Code for adding Java arrays to a program
import java.lang.*;
import java.util.*;
class ArrayDemo{
//Let’s add a new element to an array
public static Integer[] addX(Integer myArray[], int x) {
int i;
//turn array into ArrayList using asList() method
List arrList = new ArrayList( Arrays.asList(myArray));
// adding a new element to the array
arrList.add(x);
// Transforming the ArrayList into an array
myArray = arrList.toArray(myArray);
return myArray;
}
public static void main(String[] args) {
int i;
//initial array
Integer myArray[] = { 0, 1, 2, 45, 7, 5, 17};
//print the initial array out
System.out.println("Initial Array: "
+ Arrays.toString(myArray));
//element to be added
int x = 28;
// call the method to add x in myArray
myArray = addX(myArray, x);
// print the updated array out
System.out.println("Array with " + x + " added: "
+ Arrays.toString(myArray));
}
}
আউটপুট হল:
প্রাথমিক অ্যারে: [0, 1, 2, 45, 7, 5, 17] 28 যুক্ত অ্যারে: [0, 1, 2, 45, 7, 5, 17, 28]
সুতরাং, প্রোগ্রামে আমরা সফলভাবে 7 মানের একটি অ্যারে myArray তৈরি করেছি , এটি পূরণ করেছি এবং প্রিন্ট আউট করেছি। তারপর আমরা সিদ্ধান্ত নিলাম যে দশটি মান আমাদের জন্য যথেষ্ট নয়। আচ্ছা, আমরা Arrays.asList পদ্ধতি ব্যবহার করে myArray কে একটি ArrayList arrList এ রূপান্তর করেছি। এখানে 28, উপাদান যোগ করতে হবে। আমরা এটিকে ArrayList arrList এ যোগ করেছি, এবং তারপর toArray() পদ্ধতি ব্যবহার করে এটিকে একটি অ্যারেতে রূপান্তরিত করেছি এবং নতুন অ্যারে মুদ্রণ করেছি।
2. একটি বড় ক্ষমতা সহ একটি নতুন অ্যারে তৈরি করুন৷
একটি অ্যারেতে আরও উপাদান যুক্ত করার সবচেয়ে সাধারণ উপায়গুলির মধ্যে একটি হল স্ক্র্যাচ থেকে একটি নতুন, বৃহত্তর, অ্যারে তৈরি করা, পুরানোগুলির উপাদানগুলি রাখা এবং নতুন উপাদান যুক্ত করা। এখানে প্রক্রিয়াটির একটি ধাপে ধাপে ওয়াকথ্রু রয়েছে:- a+n ক্ষমতা সহ একটি নতুন অ্যারে তৈরি করুন (a — মূল অ্যারের ক্ষমতা, n — আপনি যে উপাদানগুলি যোগ করতে চান তার সংখ্যা)।
- আগের ডেটা পরিসরের সমস্ত উপাদান নতুনটিতে যোগ করুন, সেইসাথে নতুন মানগুলিও।
- ফলস্বরূপ অ্যারে প্রিন্ট করুন।
// Java Program to add an element in an Array
import java.lang.*;
import java.util.*;
class ArrayDemo {
//Method to add an element x into array myArray
public static int[] addX(int myArray[], int x) {
int i;
// create a new array of a bigger size (+ one element)
int newArray[] = new int[myArray.length + 1];
// insert the elements from the old array into the new one
for (i = 0; i < myArray.length; i++)
newArray[i] = myArray[i];
newArray[myArray.length] = x;
return newArray;
}
public static void main(String[] args) {
int i;
// initial array of size 10
int arr[]
= {0, 1, 2, 45, 7, 5, 17};
// print the initial array
System.out.println("Initial Array: " + Arrays.toString(arr));
// element to be added
int x = 28;
// call the addX method to add x in arr
arr = addX(arr, x);
// print the updated array
System.out.println("Array with " + x + " added:" + Arrays.toString(arr));
}
}
আউটপুট হল:
প্রাথমিক অ্যারে: [0, 1, 2, 45, 7, 5, 17] 28 যুক্ত অ্যারে: [0, 1, 2, 45, 7, 5, 17, 28]
ভাল, একটি অ্যারের মধ্যে একটি নতুন উপাদান যোগ করার এই উপায় হল সবচেয়ে সহজ।
3. System.arrayCopy() প্রয়োগ করা হচ্ছে
System.arrayCopy() একটি সোর্স অ্যারের গন্তব্যে একটি বড় অ্যারে বরাদ্দ করার জন্য একটি বহুল ব্যবহৃত পদ্ধতি। একজন বিকাশকারী পদ্ধতির বন্ধনীতে একটি নতুন অ্যারেতে যে ক্রমটি অনুলিপি করতে চান তা নির্দিষ্ট করতে পারেন। পদ্ধতিটি কীভাবে কাজ করে তা দেখতে এবং নিজের জন্য এটি ব্যবহার করার চেষ্টা করুন, একবার দেখুন এবং নীচের উদাহরণটি চালানোর চেষ্টা করুন:
import java.util.Arrays;
class ArrayDemo {
private static Integer[] addElement(Integer[] myArray, int newElement) {
//we create a new Object here, an array of bigger capacity
Integer[] array = new Integer[myArray.length + 1];
System.arraycopy(myArray, 0, array, 0, myArray.length);
array[myArray.length] = newElement;
return array;
}
public static void main(String[] args) {
Integer[] myArray = {20, 21, 3, 4, 5, 88};
System.out.println("myArray before adding a new element: " + Arrays.toString(myArray));
myArray = addElement(myArray, 12);
System.out.println("myArray before adding a new element: " + Arrays.toString(myArray));
}
}
আউটপুট হল:
একটি নতুন উপাদান যোগ করার আগে myArray: [20, 21, 3, 4, 5, 88] একটি নতুন উপাদান যোগ করার আগে myArray: [20, 21, 3, 4, 5, 88, 12]
এখানে আমরা একটি অ্যারে myArray তৈরি করেছি , এটি মুদ্রণ করেছি এবং আমাদের addElement পদ্ধতি ব্যবহার করে একটি নতুন উপাদান যুক্ত করেছি, যা System.arrayCopy() এ নির্মিত ।
4. অ্যারে কপি করতে Apache Commons ব্যবহার করা
আসুন একটি অ-মানক উপায় ব্যবহার করি। যথা, একটি তৃতীয় পক্ষের লাইব্রেরি Apache Commons lang. এটি Apache Commons প্রকল্পের একটি অংশ যা পুনঃব্যবহারযোগ্য জাভা উপাদানগুলির সমস্ত দিকের উপর দৃষ্টি নিবদ্ধ করে। প্রকল্প সম্পর্কে জ্ঞান অতিরিক্ত হবে না. Apache Commons lang-এর একটি মেথড অ্যাড() বিশেষভাবে ডিজাইন করা হয়েছে যাতে অ্যারে সম্প্রসারণ করা যায়, এটি কোডারদের অনেক সময় এবং শ্রম বাঁচায়। এটি মনে রাখা মূল্যবান যে এই Apache Commons add() পদ্ধতিটি সিস্টেম.arraycopy() পদ্ধতিতে কল করার উপর ভিত্তি করে তৈরি করা হয়েছে যদি আপনাকে একটি জটিল পরীক্ষা বা সাক্ষাত্কারের প্রশ্নের উত্তর দিতে হয়। আপনার প্রকল্পে লাইব্রেরি যোগ করতে Apache Commons ওয়েবসাইটে যান এবং লাইব্রেরি ডাউনলোড করুন। তারপর ফাইল → প্রজেক্ট স্ট্রাকচার → লাইব্রেরি > + এ যান এবং ডাউনলোড করা জার ফাইল নির্বাচন করুন।
import org.apache.commons.lang3.ArrayUtils;
import java.util.Arrays;
class ArrayDemo {
private static <T> T[] append(T[] arr, T element) {
return ArrayUtils.add(arr, element);
}
public static void main(String[] args) {
Integer[] myArray = { 0, 1, 2, 3, 4};
System.out.println("myArray: " + Arrays.toString(myArray));
myArray = append(myArray, 5);
System.out.println("new Array with the number added: " + Arrays.toString(myArray));
}
}
আউটপুট হল:
myArray: [0, 1, 2, 3, 4] নম্বর যোগ করা নতুন অ্যারে: [0, 1, 2, 3, 4, 5]
5. ArrayCopyOf() বাস্তবায়ন করা
ArrayCopyOf() একটি অ্যারেতে একটি নতুন উপাদান যোগ করার জন্য আরেকটি পদ্ধতি। যেমন Apache Commons lang add() এটি এই অপারেশনটি করার জন্য অভ্যন্তরীণভাবে System.arraycopy() কল করে। তবে বেশিরভাগ বিকাশকারীরা ArrayCopyOf() পছন্দ করে কারণ এটি তাদের কোড সংক্ষিপ্ত এবং পাঠযোগ্য রাখতে দেয়। এখানে একটি অ্যারেতে নতুন উপাদান যুক্ত করতে ArrayCopyOf() ব্যবহার করার একটি উদাহরণ রয়েছে:
import java.util.Arrays;
class ArrayDemo {
private static <X> X[] addElement(X[] myArray, X element) {
X[] array = Arrays.copyOf(myArray, myArray.length + 1);
array[myArray.length] = element;
return array;
}
public static void main(String[] args) {
Integer[] myArray = {20, 21, 3, 4, 5, 88};
System.out.println("myArray before adding a new element: " + Arrays.toString(myArray));
myArray = addElement(myArray, 12);
System.out.println("myArray before adding a new element: " + Arrays.toString(myArray));
}
}
আউটপুট হল:
একটি নতুন উপাদান যোগ করার আগে myArray: [20, 21, 3, 4, 5, 88] একটি নতুন উপাদান যোগ করার আগে myArray: [20, 21, 3, 4, 5, 88, 12]
উপসংহার
কিভাবে একটি অ্যারেতে উপাদান যোগ করতে হয় তা জানা ডেভেলপারদেরকে পুরানো কোডের কার্যকারিতা এবং পঠনযোগ্যতা ত্যাগ না করে দ্রুত আপডেট করতে সাহায্য করে... অথবা শুধু ইন্টারভিউ পাস করতে। যেহেতু জাভা অ্যারেতে উপাদান যোগ করার বিভিন্ন উপায় রয়েছে, তাই আপনি যে পদ্ধতিতে স্বাচ্ছন্দ্য বোধ করেন তা বেছে নিন।
আরো পড়া: |
---|
GO TO FULL VERSION