আমি কেবলমাত্র এই উত্তরটি View
হায়ারার্কি অনুসারে সমস্ত শিশুর সন্ধানের জন্য বিকল্প @ আইহার্টএন্ড্রয়েডের পুনরাবৃত্ত আলগোরিদিম হিসাবে এই উত্তরটি সরবরাহ করতে যাচ্ছি । মনে রাখবেন যে এই লেখার সময়, পুনরাবৃত্ত সমাধানটি ত্রুটিযুক্ত কারণ এতে তার ফলাফলটিতে নকল থাকবে।
যাদের পুনরাবৃত্তির চারপাশে মাথা গুটিয়ে রাখতে সমস্যা হয় তাদের জন্য এখানে একটি পুনরাবৃত্তি বিকল্প। এটি উপলব্ধি করার জন্য আপনি বোনাস পয়েন্ট পান পুনরাবৃত্তাকারী সমাধানের গভীরতা-প্রথম পদ্ধতির একটি বর্ধিত প্রথম অনুসন্ধান বিকল্প is
private List<View> getAllChildrenBFS(View v) {
List<View> visited = new ArrayList<View>();
List<View> unvisited = new ArrayList<View>();
unvisited.add(v);
while (!unvisited.isEmpty()) {
View child = unvisited.remove(0);
visited.add(child);
if (!(child instanceof ViewGroup)) continue;
ViewGroup group = (ViewGroup) child;
final int childCount = group.getChildCount();
for (int i=0; i<childCount; i++) unvisited.add(group.getChildAt(i));
}
return visited;
}
বেশ কয়েকটি দ্রুত পরীক্ষা (আনুষ্ঠানিক কিছুই নয়) প্রস্তাব দেয় যে এই বিকল্পটি আরও দ্রুত, যদিও এটির ArrayList
অন্যান্য উত্তর যে নতুন উদাহরণ তৈরি করে তার সংখ্যার সাথে এটি করার সম্ভাবনা রয়েছে । এছাড়াও, ফলাফল শ্রেণিবদ্ধ কত উল্লম্ব / অনুভূমিক হয় তার উপর ভিত্তি করে ফলাফলগুলি পৃথক হতে পারে।
ক্রস পোস্ট থেকে: অ্যান্ড্রয়েড | একটি ভিউ গ্রুপের সমস্ত শিশুদের উপাদান পান