জাভা অ্যারেলিস্ট নির্দিষ্ট সূচকে প্রতিস্থাপন করুন


212

দয়া করে এই জাভাটির সাথে আমার সাহায্য দরকার। আমি বাল্বগুলির একটি অ্যারেলিস্ট তৈরি করেছি এবং আমি নির্দিষ্ট একটি সূচকগুলিতে একটি বাল্বকে অন্য বাল্বের সাথে প্রতিস্থাপনের চেষ্টা করছি। সুতরাং নিম্নলিখিত শিরোনাম দিয়ে, আমি কীভাবে এগিয়ে যেতে পারি?

public void replaceBulb(int index, Bulbs theBulb) {

}

9
এটির মূল্যের জন্য, আমি "প্রতিস্থাপন", "পুট" বা "সন্নিবেশ" এর তালিকা ইন্টারফেসের দিকে চেয়েছিলাম। আমি সেট খোঁজার কথা ভাবিনি।
গুইসিম

2
@ গুইসিম তালিকার ইন্টারফেসটি এত দীর্ঘ নয়, আপনি খুব সহজেই এটি 5 মিনিটের মধ্যে একবারে পুরোটা পড়তে পারেন ...

2
আমি এক্লিপসের স্বতঃপূরণ ব্যবহার করছিলাম, ইন্টারফেসটি দিয়ে দেখিনি।
গুইসিম

উত্তর:


367

তালিকা ইন্টারফেসেset(int index, E element) পদ্ধতিটি পরীক্ষা করে দেখুন


3
আপনার অধিকার.কিন্তু আপনি এটি সম্পাদনা করার কথা ভাবতে পারেন কারণ আপনার উত্তরটি সত্যের দিকে নিয়ে যায় সেট () পদ্ধতিটি একটি স্থির পদ্ধতি যা নয়, তাই না?
অ্যান্ড্রয়েড কিলার

9
@ অ্যান্ড্রয়েড কিলার এটি স্থির হিসাবে ArrayList.set();তবে আপনি যখন এটি নিজের তালিকাতে কল করেন তখন তা নয়:myArrayList.set(int, E);
হুইটফিন

এই পদ্ধতিতে সমস্যাটি হ'ল অ্যারেলিস্ট শুরু না করা হলে এটি অ্যারেআউটআউটবাউন্ডএক্সসেপশন ছুড়ে দেয়। আমি এটির যোগে সঠিক সূচকে একটি উপাদান রাখতে চাই, এটি করার কোনও উপায় আছে কিনা তা নিশ্চিত নয়।
Bionix1441

@ বায়োনিক্স ১৪৪৪ এমনকি তালিকাটি শুরু করা হলেও, অস্তিত্বহীন একটি সূচকের জন্য কোনও মান নির্ধারণের চেষ্টা করা এখনও সম্ভব। সুতরাং আপনাকে কেবল আপনার সূচকটি বৈধ কিনা তা নিশ্চিত করতে হবে।
টোটোরোটোটোরো

126

আপনি নীচে হিসাবে অ্যারেলিস্টের সেট পদ্ধতি ব্যবহার করে নির্দিষ্ট অবস্থানে আইটেমগুলি প্রতিস্থাপন করতে পারেন:

list.set( your_index, your_item );

সেটটি () পদ্ধতির অভ্যন্তরে আপনি যে সূচিটি পেরিয়ে যাচ্ছেন সেই উপাদানটি উপস্থিত থাকতে হবে অন্যথায় এটি ব্যতিক্রম করবে।


1
@ ভ্যাক্সকুইস ঠিক আছে স্যার আপনি দয়া করে জাভা 8 লিখে এটি প্রকাশ করুন। আমরা এটি ব্যবহার করতে এখানে। ;)। সুতরাং, উত্তর সর্বদা প্রশ্ন অনুযায়ী হওয়া উচিত, সুতরাং দয়া করে প্রথমে প্রশ্নটি পড়ুন। যদি সমস্যাটি পূর্ববর্তী মানটি ফেরত দেয় তবে আপনি যদি সেই মানটি চান তবে আপনি এটি ব্যবহার করতে পারেন অন্যথায় এটি রেখে দিন। এটি পুরানো মানকে প্রতিস্থাপন করছে এবং এটিই।
অ্যান্ড্রয়েড কিলার

1
@ ভ্যাক্সকুইস আপনি আমার মন্তব্যটি আগে পড়েছেন? পরিষ্কারভাবে উল্লিখিত উত্তরটি সর্বদা প্রশ্ন অনুযায়ী হওয়া উচিত। যে ব্যক্তি প্রশ্ন জিজ্ঞাসা করেছেন, তিনি উল্লেখ করেছেন যে তিনি উপাদানটি প্রতিস্থাপন করতে চান যার অর্থ তার মধ্যে উপাদানগুলির সাথে অ্যারেলিস্ট রয়েছে। এখন পরিষ্কার করুন স্যার ???
অ্যান্ড্রয়েড কিলার

1
@ ভ্যাক্সকুইস আপনি যে বিষয়গুলি বিবেচনা করছেন, কোনও নবাগত এটি জানতে পারবেন, তাই এই সমস্যাগুলির কোনও অর্থ হয় না। তবুও আমি আপনাকে সুখী করতে সম্পাদনা করেছি :)
অ্যান্ড্রয়েড কিলার

2
নবাগত হওয়ার অর্থ কেউ কেউ কীভাবে সঠিকভাবে কোড করবেন তা জানেন না K অবৈধ কোড সরবরাহ করা সর্বদা ভুল এবং এটির জন্য কোনও অজুহাত নেই, কারণ এটি প্রাথমিকভাবে প্রাথমিক পর্যায়ে বিভ্রান্তি আনতে পারে। একটি সঠিক এবং স্ব-অন্তর্ভুক্ত কোড উদাহরণ প্রদান স্ট্যাকওভারফ্লো সম্পর্কে। আপনার উত্তরের উন্নতির জন্য আপনাকে ধন্যবাদ।



7
public void setItem(List<Item> dataEntity, Item item) {
    int itemIndex = dataEntity.indexOf(item);
    if (itemIndex != -1) {
        dataEntity.set(itemIndex, item);
    }
}

1
এটি কেবল তখনই কাজ করবে যদি নতুন আইটেমটি সমান () পদ্ধতির ক্ষেত্রে পুরানো আইটেমের সমান হয়, তাই না?
স্পাইকমানুক

@ স্পাইকমানুক, এটি 'আইটেম' এ 'সমান ()' পদ্ধতি প্রয়োগের উপর নির্ভর করে। সাম্যতা যদি কেবলমাত্র 'আইটেমের' আইডি'র উপর নির্ভর করে তবে এই কোডটি 'আইটেম: {আইডি = 1, নাম = লন্ডন}' আইটেম দ্বারা প্রতিস্থাপন করতে ব্যবহার করা যেতে পারে: {আইডি = 1, নাম = প্যারিস}
অনিরুদ্ধ জগতাপ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.