এটি অর্ডার করা সংগ্রহের জন্য যেমন java.util.List। ভাষা ডিজাইনারগণ একটি শেষ পদ্ধতি অন্তর্ভুক্ত করেননি কেন? কেবলমাত্র কারণগুলি আমি ভাবতে পারি:
- অস্পষ্টতা যখন সংগ্রহটি খালি থাকে (নাল ফেরান বা বাদ দিন)
- এপিআই ব্লাট
অন্য কোন কারণে?
এটি অর্ডার করা সংগ্রহের জন্য যেমন java.util.List। ভাষা ডিজাইনারগণ একটি শেষ পদ্ধতি অন্তর্ভুক্ত করেননি কেন? কেবলমাত্র কারণগুলি আমি ভাবতে পারি:
অন্য কোন কারণে?
উত্তর:
এপিআই ফোটা সম্ভবত উত্তর। আমার অভিজ্ঞতা থেকে কেবলমাত্র যখন আমি এই কার্যকারিতাটি প্রয়োজন তখন একটি ক্যু বা স্ট্যাক ছিল উপযুক্ত পদ্ধতিযুক্ত কাজের জন্য সঠিক ডেটা কাঠামো।
get(-1)কোনও তালিকা শেষে থেকে পুনরুদ্ধার করতে সমর্থন করে তবে এটি এপিআই ব্লাট যুক্ত না করে ওপি যা চেয়েছিল তা করবে। এর মতো আমার উত্তরটি অব্যক্ত ডাউনভোটগুলি আঁকা।
একটি last()পদ্ধতি ঠিক যেমন সহজ list.get(list.size()-1), তেমন কোনও first()পদ্ধতি বা fifth()পদ্ধতি নেই। এটি সংশ্লেষ করা এতটা কঠিন নয় এবং এটি একটি বিশেষীকরণ। আপনি reverse()তালিকাটি করতে পারেন এবং list.get(0)যা lastআইটেমটি দেবে। যে কাজগুলি করা সহজ, সাধারণত তাদের নিজস্ব বিশেষ পদ্ধতি পান না।
import java.util.ArrayList;
import java.util.List;
public class Main
{
public static void main(String[] args)
{
final List<String> l = new ArrayList<String>();
l.add("A");
l.add("B");
l.add("Z");
System.out.println("l.get(0) = " + l.get(0));
System.out.println("l.get(l.size()-1) = " + l.get(l.size() - 1));
}
}
নিম্নলিখিত আউটপুট ফলাফল
l.get(0) = A
l.get(l.size()-1) = Z
এটি ধারণা করাও অনুমানযোগ্য যে Listইন্টারফেসটি প্রয়োগ করে এমন প্রতিটি last()কিছুরই ধারণাগুলি আসলে আছে ।
.size()বর্তমান আকারটি ফিরে .size()-1আসবে এখনও নির্বিশেষে সর্বশেষ উপাদানটি হবে, এটি কীভাবে জানবে যে এটি সম্পূর্ণ জনবহুল ছিল কিনা?
.size()-1বাস্তবায়ন নিখুঁত উপায় নয় last()(যদিও এই ধরনের একটি বৃহৎ তালিকা খুব অসম্ভাব্য এবং আমি ভাবছি এই ধরনের একটি তালিকা বাস্তবায়ন করবে toArray()...)
java.util.LinkedListসংজ্ঞায়িত getLast()এবং getFirst()পদ্ধতি। দুর্ভাগ্যক্রমে এই পদ্ধতিগুলির এর একটি ইন্টারফেসে সংজ্ঞায়িত করা হয়নি, সুতরাং আপনাকে লিংকডলিস্ট টাইপ ব্যবহার করতে হবে। আপনি যদি কেবলমাত্র সর্বশেষ উপাদানটিতে আগ্রহী হন তবে আপনি java.util.Queueইন্টারফেসের peek()পদ্ধতিটি ব্যবহার করতে পারেন । লিঙ্কডলিস্ট সারি প্রয়োগ করে।
মূলত আপনাকে হয় size()একটি forলুপের জন্য জিজ্ঞাসা করতে হবে বা এর পুনরুক্তিকারীকে জিজ্ঞাসা করে এটি পুনরুক্ত করতে হবে এবং এটি কিছুক্ষণের মধ্যে বা ডু-লুপ ব্যবহার করতে হবে। আপনার উদ্দেশ্যে উপযুক্ত একটি ব্যবহার করুন।
আরও বেশি এন্ট্রি থাকলে পুনরাবৃত্তি একটি নির্দিষ্ট বিন্দুতে জানে এবং যদি সেখানে থাকে তবে আপনাকে পরবর্তীটি পেতে দেয়। তারপরে আপনি "আরও এন্ট্রি" পর্যন্ত পুনরুক্ত করবেন? ব্যর্থ।
Http://download.oracle.com/javase/tutorial/collections/interfaces/collection.html এ "ট্র্যাভারসিং সংগ্রহগুলি" বিভাগটি দেখুন
collection.get(collection.size() - 1)।