লিস্ট (List) হল একটি অর্ডার করা ডেটা স্ট্রাকচার, যা একাধিক উপাদান ধারণ করতে পারে। স্কালার লিস্ট হল একটি ইমিউটেবল (Immutable) কালেকশন, যার মানে একবার একটি লিস্ট তৈরি হলে সেটির উপাদান বা কাঠামো পরিবর্তন করা যায় না। এটি উপাদানগুলিকে নির্দিষ্ট একটি অর্ডারে সংরক্ষণ করে এবং ডুপ্লিকেট উপাদান থাকতে পারে। স্কালার লিস্ট খুবই শক্তিশালী এবং সহজে ব্যবহারযোগ্য একটি ডেটা স্ট্রাকচার, বিশেষ করে ফাংশনাল প্রোগ্রামিংয়ের জন্য।
লিস্টের বৈশিষ্ট্য:
- অর্ডার: লিস্টে উপাদানগুলি একটি নির্দিষ্ট অর্ডারে থাকে, অর্থাৎ প্রথমে যোগ করা উপাদানটি প্রথমে থাকবে।
- ডুপ্লিকেট উপাদান: লিস্টে ডুপ্লিকেট উপাদান থাকতে পারে। এর মানে একাধিকবার একই উপাদান রাখা সম্ভব।
- ইমিউটেবল (Immutable): স্কালার লিস্ট একবার তৈরি হলে তার উপাদান পরিবর্তন করা যায় না। তবে, নতুন উপাদান যোগ বা পুরোনো উপাদান মুছে ফেলার জন্য একটি নতুন লিস্ট তৈরি হয়।
- হেড এবং টেল: স্কালার লিস্টে
head(প্রথম উপাদান) এবংtail(বাকি উপাদানগুলো) নামে দুটি অংশ থাকে।
লিস্ট তৈরি করা
স্কালাতে লিস্ট তৈরি করার জন্য সোজা সোজি একটি সাইনট্যাক্স ব্যবহার করা হয়:
val list1 = List(1, 2, 3, 4, 5)এখানে List(1, 2, 3, 4, 5) একটি লিস্ট তৈরি করেছে যার মধ্যে পাঁচটি ইন্টিজার উপাদান রয়েছে।
লিস্টের কিছু মৌলিক অপারেশন
১. হেড (head): প্রথম উপাদান অ্যাক্সেস করা।
val firstElement = list1.head
println(firstElement) // 1২. টেল (tail): প্রথম উপাদান বাদে বাকি সব উপাদান।
val tailElements = list1.tail
println(tailElements) // List(2, 3, 4, 5)৩. ইমিউটেবল লিস্টে নতুন উপাদান যোগ করা: লিস্টে নতুন উপাদান যোগ করার জন্য, নতুন লিস্ট তৈরি করা হয়।
val newList = 0 :: list1
println(newList) // List(0, 1, 2, 3, 4, 5)৪. লিস্টের দৈর্ঘ্য (length): লিস্টের উপাদানগুলোর সংখ্যা বের করা।
val listLength = list1.length
println(listLength) // 5৫. লিস্টে উপাদান থাকা (contains): একটি উপাদান লিস্টে রয়েছে কি না, তা যাচাই করা।
val isPresent = list1.contains(3)
println(isPresent) // trueলিস্টের বিভিন্ন প্রকার
স্কালার লিস্ট দুটি প্রধান প্রকারে ভাগ করা যেতে পারে:
১. সাধারণ লিস্ট (List)
এটি সাধারণভাবে ব্যবহার করা হয় এবং ইমিউটেবল হয়ে থাকে। লিস্টের উপাদানগুলো নির্দিষ্ট অর্ডারে থাকে।
val simpleList = List(10, 20, 30, 40)২. নেল (Nil)
স্কালার লিস্টের একটি বিশেষ ধরনের প্রকার হল Nil, যা একটি খালি লিস্টের প্রতিনিধিত্ব করে।
val emptyList = Nilএটি স্কালার লিস্টের ভিত্তি, এবং যখন লিস্টটি খালি থাকে তখন এটি ব্যবহার করা হয়।
লিস্টে কিছু সাধারণ অপারেশন
১. map অপারেশন: লিস্টের প্রতিটি উপাদানের উপর একটি ফাংশন প্রয়োগ করা।
val doubledList = list1.map(x => x * 2)
println(doubledList) // List(2, 4, 6, 8, 10)২. filter অপারেশন: একটি শর্তের ভিত্তিতে উপাদান বাছাই করা।
val evenList = list1.filter(x => x % 2 == 0)
println(evenList) // List(2, 4)৩. reduce অপারেশন: লিস্টের উপাদানগুলোকে একত্রিত করে একটি ফলাফল তৈরি করা।
val sum = list1.reduce((x, y) => x + y)
println(sum) // 15সারাংশ
স্কালার লিস্ট একটি অত্যন্ত শক্তিশালী এবং বহুল ব্যবহৃত ডেটা স্ট্রাকচার, যা ইমিউটেবল এবং অর্ডারড উপাদান ধারণ করতে সক্ষম। এটি ফাংশনাল প্রোগ্রামিংয়ে সহজে ব্যবহৃত হয় এবং এর সাথে নানা ধরনের ফাংশনাল অপারেশন যেমন map, filter, reduce ইত্যাদি ব্যবহার করে ডেটার কার্যকরী প্রক্রিয়াকরণ করা যায়।
Read more