شمارش عناصر تکراری لیست در جاوا

شمارش عناصر تکراری لیست در جاوا

در این جلسه به آموزش شمارش عناصر تکراری لیست در جاوا میپردازیم. پیش نیاز این آموزش شامل موارد زیر است:

  1. آشنایی با For
  2. آشنایی با متد
  3. آشنایی با HashMap
  4. آشنایی با لیست پیوندی

Arraylist

کار با آرایه در زبان های برنامه نویسی بسیار چشمگیر است.زیرا در بسیاری از موارد که قرار است اطلاعات افراد زیادی در حافظه ذخیره شود، منطق حکم میکند ار آرایه استفاده نکنیم. از محاسن آرایه ها ذخیره اطلاعات به تعداد لازم از یک نوع خاص و حرکت آسان بین داده ها میباشد، اما حذف یک مقدار شاید کار چندان ساده ای نباشد چرا که در زمان تعریف آرایه آن مکان از حافظه رزرو شده و تنها در صورتی قابل بازپسگیری میباشد که کل آرایه را از بین ببریم. پس برای این کار از لیست آرایه ها یا arraylist استفاده میکنیم جراکه با استفاده از آنها داده ها به راحتی قابل دسترس بوده و میتوان آنها را در هر مکان از آرایه به راحتی درج یا حذف نمود بدون آنکه مجبور به حذف کل آرایه باشیم.

شمارش عناصر تکراری لیست در جاوا

برای شمارش عناصر تکراری لیست ما از دو روش استفاده میکنیم.روش اول استفاده از کتابخانه Collection است و روش دوم استفاده از Hashmap است.

استفاده از کتابخانه Collection

برای شمارش عناصر تکراری لیست با استفاده از کتابخانه Collection ما کاره سختی نداریم و این کتابخانه متدی به نام Frequency دارد که ورودی اول لیست ما و ورودی دوم؛ عنصری که قصد شمارش آن را داریم، است. کد شمارش عناصر تکراری لیست در جاوا به صورت زیر است:

     public static void CountDuplicateWithCollection(ArrayList<String> list) {

          System.out.println(“a : ” + Collections.frequency(list, “a”));

     }

استفاده از Hashmap

ابتدا یک hashmap از لیست خود درست میکنیم. همانطور که میدانید hashmap یک key دارد و یک value . ما در key عنصر لیست را قرار میدهیم و در value تعداد تکرار آن عنصر در لیست. کد آن به صورت زیر است:

     public static void CountDuplicateWithMap(ArrayList<String> list) {

          Map<String, Integer> map = new HashMap<String, Integer>();

          for (String temp : list) {

              Integer count = map.get(temp);

              map.put(temp, (count == null) ? 1 : count + 1);

          }

          for (Map.Entry<String, Integer> entry : map.entrySet()) {

              System.out.println(“Key : ” + entry.getKey() + ” Value : “

                   + entry.getValue());

          }

     }

در کد بالا حلقه for اول برای شمارش عناصر و اضافه کردن به hashmap است و حلقه دوم برای نمایش عناصر لیست و تکرار آنها است.

تست شمارش عناصر تکراری لیست در جاوا

برای تست کدهای بالا، کد main زیر را بزنید:

     public static void main(String[] args) {

          ArrayList<String> list = new ArrayList<String>();

          list.add(“a”);

          list.add(“b”);

          list.add(“c”);

          list.add(“d”);

          list.add(“b”);

          list.add(“c”);

          list.add(“a”);

          list.add(“a”);

          list.add(“a”);

          System.out.println(“Count Duplicate With Collection:”);

          CountDuplicateWithCollection(list);

          System.out.println(“Count Duplicate With HashMap”);

          CountDuplicateWithMap(list);

     }

 

 

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *