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


434

আমি এটির মতো একটি অ্যারে শুরু করছি:

public class Array {

    int data[] = new int[10]; 
    /** Creates a new instance of Array */
    public Array() {
        data[10] = {10,20,30,40,50,60,71,80,90,91};
    }     
}

নেটবিন্স এই লাইনে একটি ত্রুটি দেখায়:

data[10] = {10,20,30,40,50,60,71,80,90,91};

আমি কীভাবে সমস্যার সমাধান করতে পারি?


3
আপনি "ইনট ডেটা []" দ্বারা "ইনট ডেটা [] = নতুন ইনট [10]" প্রতিস্থাপন করতে পারেন। আপনি সেখানে স্মৃতি নষ্ট করছেন।
মিসিংফ্যাক্টর

উত্তর:


642
data[10] = {10,20,30,40,50,60,71,80,90,91};

উপরেরটি সঠিক নয় (সিনট্যাক্স ত্রুটি)। এর অর্থ হল আপনি এমন একটি অ্যারের বরাদ্দ করছেন data[10]যা কেবলমাত্র একটি উপাদান ধরে রাখতে পারে।

আপনি যদি একটি অ্যারে শুরু করতে চান তবে অ্যারে ইনিশিয়ালাইজারটি ব্যবহার করে দেখুন :

int[] data = {10,20,30,40,50,60,71,80,90,91};

// or

int[] data;
data = new int[] {10,20,30,40,50,60,71,80,90,91};

দুটি ঘোষণার মধ্যে পার্থক্য লক্ষ্য করুন। ঘোষিত ভেরিয়েবলকে নতুন অ্যারে নির্ধারণের সময় newঅবশ্যই ব্যবহার করা উচিত।

আপনি সিনট্যাক্সটি সংশোধন করলেও, অ্যাক্সেস data[10]করা এখনও ভুল ((আপনি কেবল অ্যাক্সেস data[0]করতে পারেন data[9]কারণ জাভাতে অ্যারেগুলির সূচি 0-ভিত্তিক)। অ্যাক্সেস data[10]একটি অ্যারেআইন্ডেক্সআউটআউটবাউন্ডসেক্সপশন নিক্ষেপ করবে ।


2
আসলে এটির প্রাথমিক কারণটি এটি একটি সিনট্যাক্স ত্রুটি! এআইওবি কেবল তখনই ঘটত যদি সিনট্যাক্স গ্রহণযোগ্য হয়।
স্টিফেন সি

1
আপনি কি আমাকে দয়া করে সহায়তা করতে পারেন, আমি যদি এইরকম একটি অ্যারে ঘোষণা করি: public static void product(int[] array){ int[] productArray = new int[array.length];এবং productArray শূন্যের সমস্ত মান সেট করতে চাই, তবে আমি কী লিখব? (আমি মনে করি আমার একটি লুপ লিখতে হবে এবং সমস্ত মানকে শূন্যে সেট করা উচিত, এটি করার আরও ভাল কোনও উপায় আছে কি?)
হেনগামেহ

2
@ হেনগামেহ: এটি ডিফল্টরূপে 0 থেকে শুরু করা হয়েছে। দেখুন stackoverflow.com/a/2154340/1000655
নীল Gokli

39

চেষ্টা data = new int[] {10,20,30,40,50,60,71,80,90,91 };


1
+1 টি। আপনার একটি অতিরিক্ত খোলার ব্রেস আছে। যে কেউ লিখতে পারেন: ডেটা [0] = 10; ডেটা [1] = 20; .... int ডেটার পরে [] = নতুন ইনট [10], তবে এটি অনেক বেশি কোড এবং এটি একই জিনিসটি শেষ করবে।
হামিশ গ্রুবিজন

28

আপনি যখন 10 মাপের একটি অ্যারে তৈরি করেন তখন এটি 10 ​​টি স্লট বরাদ্দ করে কিন্তু 0 থেকে 9 পর্যন্ত This

public class Array {
    int[] data = new int[10]; 
    /** Creates a new instance of an int Array */
    public Array() {
        for(int i = 0; i < data.length; i++) {
            data[i] = i*10;
        }
    }
}

16

আপনি করতে পারেন:

int[] data = {10,20,30,40,50,60,71,80,90,91};

3
আমি ভাবছি 5 বছর আগে থেকে গৃহীত উত্তরের উপরে এটি কী মান যুক্ত করে।
টাইলার এইচ

12

বাক্য গঠন

 Datatype[] variable = new Datatype[] { value1,value2.... }

 Datatype variable[]  = new Datatype[] { value1,value2.... }

উদাহরণ:

int [] points = new int[]{ 1,2,3,4 };

8

বরং আন-অফিসিয়াল ওয়েবসাইটগুলি শেখার চেয়ে ওরাকল ওয়েবসাইট থেকে শিখুন

লিঙ্কটি নিম্নলিখিত: এখানে ক্লিক করুন

* আপনি পুরো বর্ণনা সহ প্রারম্ভিককরণের পাশাপাশি ঘোষণার সন্ধান করতে পারেন *

int n; // size of array here 10
int[] a = new int[n];
for (int i = 0; i < a.length; i++)
{
    a[i] = Integer.parseInt(s.nextLine()); // using Scanner class
}

ইনপুট : 10 // অ্যারে আকার 10 20 30 40 50 60 71 80 90 91

তথ্য প্রদর্শিত হচ্ছে:

for (int i = 0; i < a.length; i++) 
{
    System.out.println(a[i] + " ");
}

আউটপুট: 10 20 30 40 50 60 71 80 90 91


3

আপনি এর মতো কোনও অ্যারে শুরু করতে পারবেন না। অন্যরা যা পরামর্শ দিয়েছে সেগুলি ছাড়াও আপনি এটি করতে পারেন:

data[0] = 10;
data[1] = 20;
...
data[9] = 91;

3

আপনি যদি কোনও কন্সট্রাক্টরে একটি অ্যারের সূচনা করতে চান তবে আপনি সেই অ্যারে প্রারম্ভিককরণের মতো ব্যবহার করতে পারবেন না।

data= {10,20,30,40,50,60,71,80,90,91};

কেবল এটিতে পরিবর্তন করুন

data = new int[] {10,20,30,40,50,60,71,80,90,91};

আপনাকে data[10] = new int[] { 10,...,91} কেবল সম্পত্তি / ক্ষেত্রের সাহায্যে ঘোষণা করতে int[] data;হবে এবং উপরের মতো এটি আরম্ভ করতে হবে না। আপনার কোডের সংশোধিত সংস্করণটি নীচের মত দেখাচ্ছে:

public class Array {

    int[] data;

    public Array() {
        data = new int[] {10,20,30,40,50,60,71,80,90,91};
    }

}

আপনি দেখতে যেমন বন্ধনী খালি আছে। বন্ধনীগুলির মধ্যে আকারটি বলার দরকার নেই, কারণ সূচনা এবং এর আকারটি কোঁকড়ানো বন্ধনীগুলির মধ্যে উপাদানগুলির গণনা দ্বারা নির্দিষ্ট করা হয়েছে।


2

আপনি অ্যারের 10 তম উপাদানটি অ্যারের চেষ্টাতে সেট করার চেষ্টা করছেন

data = new int[] {10,20,30,40,50,60,71,80,90,91};

FTFY


0

সম্ভবত এটি কাজ করবে:

public class Array {

    int data[] = new int[10]; 
    /* Creates a new instance of Array */
    public Array() {
        data= {10,20,30,40,50,60,71,80,90,91};
    }
}

6
এটি কীভাবে প্রশ্ন থেকে পৃথক হয়? আপনার উত্তর প্রসারিত করুন!
আলেকজান্ডার ভোগ্ট

2
অ্যারে ইনিশিয়ালাইজারটি কনস্ট্রাক্টরে অনুমোদিত নয় !!!! আপনার প্রস্তাবগুলি পোস্ট করার আগে তাদের কমপক্ষে পরীক্ষা করা উচিত ...
শেদাত কিলিং
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.