জাভাতে অ্যারের দৈর্ঘ্য


101

আমি নীচে প্রদর্শিত হিসাবে একটি অ্যারে ঘোষণা:

int[] arr = new int[10];

তারপরে আমি অ্যারের সাথে নিম্নলিখিত মানগুলি অর্পণ করেছি:

arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;

তারপরে আমি একটি পূর্ণসংখ্যার ভেরিয়েবল ঘোষণা এবং প্রাথমিককরণ করেছি:

int arrayLength = arr.length;

এটি প্রকৃত আকার খুঁজে পেতে দরকারী হবে তবে অ্যারের যৌক্তিক আকার খুঁজে পাওয়ার জন্য কোনও পদ্ধতি আছে কি?

উত্তর:


86

এটি বরাদ্দ আকার ধারণ করে 10। আনসাইন না করা সূচীতে ডিফল্ট মান থাকবে যা 0জন্য int


3
হ্যাঁ, অ্যারেগুলি স্থির মেমরির বরাদ্দ।
রামন সরাইভা

3
জাভাদোক দেখাতে পারবেন? আমি জানি না যে এই "দৈর্ঘ্য" সম্পত্তিটি কোথায়।
ফিলিপ রেগো

1
@PhilipRego এটা ভাষা স্পেসিফিকেশন এর docs.oracle.com/javase/specs/jls/se8/html/jls-10.html#jls-10.3
Torben

71

প্রথমত, lengthএকটি সম্পত্তি, তাই এটি arr.lengthপরিবর্তে হবে arr.length()

এবং এটি 10, ঘোষিত আকার ফিরে আসবে। আপনি যে উপাদানগুলিকে স্পষ্টভাবে ঘোষণা করেন না সেগুলি 0 দিয়ে শুরু করা হয়।


অ্যারে টাইপ দীর্ঘ [] জাভা (67108980) এ দৈর্ঘ্য () প্রার্থনা করা যাবে না
আলেসান্দ্রো

22

একটি অ্যারের দৈর্ঘ্য সন্ধান Aকরতে আপনার lengthসম্পত্তিটি ব্যবহার করা উচিত । এটি যেমন স্ট্রিং সম্পর্কিত বস্তুর আকারের জন্য এটির প্রধানত ব্যবহৃত হয় A.lengthনা A.length()

এখানে চিত্র বর্ণনা লিখুন

দৈর্ঘ্যের বৈশিষ্ট্য সর্বদা আরম্ভের সময় অ্যারে মোট বরাদ্দ স্থান দেখায়।

আপনার যদি কখনও এই ধরণের সমস্যা হয় তবে এটি চালানো সহজ উপায়। শুভ প্রোগ্রামিং!


6

অ্যারেগুলি স্থির মেমরির বরাদ্দ, সুতরাং আপনি যদি পূর্ণসংখ্যার একটি অ্যারে শুরু করেন:

int[] intArray = new int[15];

দৈর্ঘ্য সর্বদা 15 হবে, যতই সূচী পূর্ণ হয় না।

এবং অন্য একটি জিনিস, আপনি যখন একটি পূর্ণসংখ্যার অ্যারে অন্তর্নিবিষ্ট করবেন তখন সমস্ত সূচী "0" দিয়ে পূর্ণ হবে।


5

জাভাতে আপনার "আসল" এবং "যৌক্তিক" আকার একই are রান-টাইম বরাদ্দকরণের সময় ডিফল্ট মান সহ সমস্ত অ্যারে স্লট পূরণ করে। সুতরাং, আপনার a10 রয়েছে।


5

এই ক্ষেত্রে, আরআরএলটিথটি 10 ​​বরাদ্দ করবে, আপনার বরাদ্দ করা অ্যারের আকার। লজিক্যাল আকারটি এখানে সত্যই প্রয়োগ হয় না কারণ এটি একটি নির্দিষ্ট দৈর্ঘ্যের অ্যারে।

আপনি অ্যারে শুরু করার সময়:

int[] arr = new int[10];

জাভা 10 টি উপাদান দিয়ে একটি অ্যারে তৈরি করবে এবং এগুলিকে 0 এ সূচনা করবে this এটি এবং অন্যান্য আদিম ধরণের প্রাথমিক মানগুলির বিশদ জন্য জাভা ভাষার বিশেষ দেখুন ।


4
int[] arr = new int[10];

arrintআকারযুক্ত যা একটি টাইপ অ্যারে হয় 10। এটি 10উপাদানগুলির একটি অ্যারে । যদি আমরা ডিফল্টরূপে অ্যারে আরম্ভ না করি তবে অ্যারের উপাদানগুলিতে ডিফল্ট মান থাকে। ইন্টের ক্ষেত্রে অ্যারের ক্ষেত্রে ডিফল্ট মান হয় 0

দৈর্ঘ্য এমন একটি সম্পত্তি যা অ্যারের জন্য প্রযোজ্য।
এখানে arr.lengthদেবে 10


3

`

int অ্যারে [] = নতুন ইনট [3]; array.length;

সুতরাং এখানে আমরা 3 টির একটি মেমরি স্পেস সহ একটি অ্যারে তৈরি করেছি ... এটি বাস্তবে এটি কেমন দেখাচ্ছে

0 ম 1 ষ্ঠ দ্বিতীয় ...........> সূচক 2 4 5 ...........> সংখ্যা

সুতরাং আপনি দেখতে পাবেন যে এই অ্যারের আকারটি 3 কিন্তু অ্যারের সূচকটি কেবল 2 পর্যন্ত যেহেতু কোনও অ্যারে 0 তম সূচক দিয়ে শুরু হয়।

দ্বিতীয় বিবৃতি 'আউটপুট 3 হবে যেহেতু অ্যারের দৈর্ঘ্য 3 ... অনুগ্রহ করে সূচকের মান এবং অ্যারের দৈর্ঘ্যের মধ্যে বিভ্রান্ত হবেন না ...

চিয়ার্স!


2
  int arr[]={4,7,2,21321,657,12321};
  int length =arr.length;
  System.out.println(length); // will return 6

  int arr2[] = new int[10];
   arr2[3] = 4;
  int length2 =arr2.length;
  System.out.println(length2); // // will return 10. all other digits will be 0 initialize because staic memory initialization

1

এটি অ্যারের আসল আকার ধারণ করবে যেমন আপনি অ্যারেটিকে ঘোষণাকালীন হওয়ার আগে যখন আরেটি শুরু করেছিলেন। জাভাতে কোন অ্যারের "লজিকাল" আকারের কোনও ধারণা নেই, যতক্ষণ না এটি 0 এর ডিফল্ট মানটি ম্যানুয়ালি সেট করা মানগুলির মতোই যৌক্তিক।


1

এটি বরাদ্দ করা আকার, 10 রয়েছে। বাকী সূচকগুলিতে ডিফল্ট মান থাকে যা 0 হয়।


1

আপনি যদি অ্যারের লজিকাল আকারটি চান, আপনি অ্যারের সমস্ত মান অতিক্রম করতে পারেন এবং তাদের শূন্যের বিপরীতে পরীক্ষা করতে পারেন। মানটি শূন্য না হলে বৃদ্ধি করুন এবং এটি লজিক্যাল আকার। অ্যারের আকারটি স্থির হওয়ার কারণে, আপনার কোনও ইনবিল্ট পদ্ধতি নেই, আপনার সংগ্রহের দিকে নজর দেওয়া উচিত।


এটি কেবলমাত্র "আমি ধরে নিলাম 0 একটি বৈধ মান নয়" আকার এবং এটি যদি সহায়ক হয় তবে এটি সন্দেহজনক।
টম

আমি মাত্র অ্যারের দৈর্ঘ্য (0 টি অবৈধ) প্রাপ্ত করার জন্য একটি ধারণা নিয়ে এসেছি। যেমনটি আমি বলেছি আপনি আরও সুনির্দিষ্ট ডেটা ম্যানিপুলেশনের জন্য সংগ্রহগুলি ব্যবহার করতে পারেন।
Struse

1

এটা করা উচিত:

int a = arr.length;

প্যারেন্টেসিস এড়ানো উচিত।


5
ওভারফ্লো স্ট্যাক স্বাগতম! যেহেতু এটি একটি বছরেরও বেশি পুরানো প্রশ্ন এবং এরই মধ্যে আরও ছয়টি উত্তর রয়েছে, আমি এর চেয়ে দীর্ঘতর উত্তর আশা করব। তদুপরি, আপনি প্রশ্নের বিন্দুটির উত্তর দিচ্ছেন না - কেবলমাত্র একটি টাইপোগুলি ঠিক করছেন যা ইতিমধ্যে উত্তরে লক্ষ্য করা গেছে (যা প্রশ্নের উত্তর দেয়) এবং একটি প্রশ্ন মন্তব্যে।
জন ডিভোরাক

0

জাভা অ্যারেগুলি আসলে আকারে স্থির হয় এবং অন্যান্য উত্তরগুলি ব্যাখ্যা করে যে। দৈর্ঘ্য কীভাবে আপনি যা প্রত্যাশা করবেন তা বাস্তবে কী করছে না। আমি কেবল আপনার প্রশ্নটি যুক্ত করতে চাই যে আপনি কী ব্যবহার করতে চাইতে পারেন সেটি হচ্ছে অ্যারেলিস্ট, এটি এমন একটি অ্যারে যা বৃদ্ধি এবং সঙ্কুচিত হতে পারে:

https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html

এখানে .size () পদ্ধতিটি আপনাকে আপনার তালিকার উপাদানগুলির সংখ্যা প্রদর্শন করবে এবং জিনিস যুক্ত করার সাথে সাথে আপনি এটিকে বাড়িয়ে তুলতে পারবেন।


0

যদি আপনি "লজিকাল সাইজ" বলতে চান, অ্যারের সূচক, তবে কেবল ইনট অ্যারেএলইংথ = অ্যারেরলাইংথ -১; যেহেতু অ্যারে সূচকটি "0" দিয়ে শুরু হয়, তাই যৌক্তিক বা "অ্যারে সূচক" সর্বদা "এক" দ্বারা প্রকৃত আকারের চেয়ে কম হবে।


0

অ্যারেগুলি জাভাতে সংকলনের সময় মেমরি বরাদ্দ করা হয়, সুতরাং এগুলি স্থির থাকে, স্পষ্টভাবে সেট করা বা সংশোধিত নয় এমন উপাদানগুলি ডিফল্ট মানগুলির সাথে সেট হয়। আপনি এর মতো কিছু কোড ব্যবহার করতে পারেন, যদিও এটি ডিফল্ট মান গণনা করে না কারণ এটি সুপারিশ করা হয় না, আপনি যদি সেগুলি স্পষ্টভাবে সেভাবে শুরু করেন তবে এটি লাইনটিকে ত্রুটিযুক্ত করার সম্ভাবনাও রয়েছে। অন্যরা যেমন বলেছে, আসল আকারের সন্ধান করার সময় "। দৈর্ঘ্য") এর পরিবর্তে "দৈর্ঘ্য" ব্যবহার করা উচিত।

public int logicalArrayLength(type[] passedArray) {
    int count = 0;
    for (int i = 0; i < passedArray.length; i++) {
        if (passedArray[i] != defaultValue) {
            count++;
        }
    }
    return count;
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.