জাভাতে একটি বুলিয়ান অ্যারে শুরু করা


102

আমার এই কোড আছে

public static Boolean freq[] = new Boolean[Global.iParameter[2]];
freq[Global.iParameter[2]] = false;

কেউ আমাকে বলতে পারে যে আমি এখানে ঠিক কী করছি এবং আমি কীভাবে এটি সংশোধন করব? আমাকে কেবল বুলেট মিথ্যাতে সমস্ত অ্যারে উপাদানগুলির সূচনা করতে হবে। ধন্যবাদ

উত্তর:


285

আমাকে কেবল বুলেট মিথ্যাতে সমস্ত অ্যারে উপাদানগুলির সূচনা করতে হবে।

হয় boolean[]পরিবর্তে ব্যবহার করুন যাতে সমস্ত মান ডিফল্ট হয় false:

boolean[] array = new boolean[size];

অথবাArrays#fill() পুরো অ্যারেটি পূরণ করার জন্য ব্যবহার করুন Boolean.FALSE:

Boolean[] array = new Boolean[size];
Arrays.fill(array, Boolean.FALSE);

এছাড়াও লক্ষ করুন যে অ্যারে সূচকটি শূন্য ভিত্তিক। আপনি যে freq[Global.iParameter[2]] = false;লাইনটি সৃষ্টি করেছিলেন তা ঘটবে ArrayIndexOutOfBoundsException। জাভাতে অ্যারে সম্পর্কে আরও জানতে, এই বেসিক ওরাকল টিউটোরিয়ালটির পরামর্শ নিন ।


3
কোডের দ্বিতীয় অংশটি কেসটির জন্য উপকারী যখন আমরা এটিকে সমস্ত সত্য মানগুলিতে আরম্ভ করতে (সেট করতে) চাই। দুর্দান্ত উত্তর!
ot

3
আমি পরিবর্তে ভেরিয়েবলের নামটি উল্টো করে দেব এবং ভুয়া মানগুলির সাথে ডিফল্ট সূচনাটি ব্যবহার করব।
বালাসসি

আমি আসলে অনুগ্রহ মধ্যে আছি Boolean[] arrayযেমন আপনি প্রতিটি উপাদান জন্য তিনটি রাজ্যের করতে সক্ষম হবেন: true, falseএবং null, যা ক্ষেত্রে যেখানে আপনি যে কিছু হয় "প্রক্রিয়া করা" নোট করতে চান তাদের জন্য দরকারী।
অভিষেক দিভেকর

20

আপনি যখন এটি বরাদ্দ করেন তখন অ্যারেটি মিথ্যাতে শুরু করা হবে।

জাভাতে সমস্ত অ্যারে টাইপের জন্য ডিফল্ট মান থেকে শুরু করা হয়। এর অর্থ হ'ল ইন্টের অ্যারেগুলি 0 থেকে শুরু করা হয়, বুলিয়ানগুলির অ্যারেগুলি মিথ্যা থেকে আরম্ভ করা হয় এবং রেফারেন্স প্রকারের অ্যারেগুলি শূন্য করা হয়।


12
তিনি ব্যবহার করছেন Boolean, না boolean, তাই এটি ডিফল্ট হবে null
বালুস সি

1
সঠিক। আমি তা দেখিনি। অ্যারে.ফিলের কৌশলটি করা উচিত।
জর্জেন ফোগ 17

9

জাভাতে অ্যারেগুলি 0 থেকে সূচকে শুরু হয় So সুতরাং আপনার উদাহরণে আপনি এমন একটি উপাদানকে উল্লেখ করছেন যা অ্যারের বাইরে থাকে one

এটি সম্ভবত ফ্রেইকের মতো কিছু হওয়া উচিত [Global.iParameter [2] -1] = মিথ্যা;

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

আসলে, আমি পুরোপুরি নিশ্চিত যে জাভাতে বুলিয়ানগুলির জন্য মিথ্যাটি ডিফল্ট, সুতরাং আপনার আর কোনও আরম্ভ করার দরকার নেই।

শুভেচ্ছান্তে


2
তিনি ব্যবহার করছেন Boolean, না boolean, তাই এটি ডিফল্ট হবে null
বালাসসি

5

সেগুলি falseডিফল্টরূপে প্রাথমিক করা হবে । জাভাতে অ্যারেগুলি হিপ তৈরি করা হয় এবং অ্যারের প্রতিটি উপাদানকে তার ধরণের উপর নির্ভর করে একটি ডিফল্ট মান দেওয়া হয়। জন্য booleanডেটা টাইপ ডিফল্ট মান হল false


3
তিনি ব্যবহার করছেন Boolean, না boolean, তাই এটি ডিফল্ট হবে null
বালাসসি


2

পাবলিক স্ট্যাটিক বুলিয়ান ফ্রেইক [] = নতুন বুলিয়ান [Global.iParameter [2]];

Global.iParameter [2]:

এটি কনস্ট মান হতে হবে


1
এটা সত্য নয়। পাশাপাশি চলক হতে পারে। সমস্যাটি হ'ল আপনি অ্যারে অ্যাক্সেস করতে Global.iParameter [2] ব্যবহার করছেন। তবে সূচকগুলি 0 থেকে কেবল গ্লোবাল.আইপ্যারামিটার [2] -1 পর্যন্ত যাচ্ছে!
কারসেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.