menusearch
javapro.ir

جلسه ششم - کلاس HashSet در جاوا

جستجو
شنبه ۶ مرداد ۱۴۰۳ | ۷:۳۸:۵۹
۱۳۹۶/۱۱/۲۰ جمعه
(9)
(0)
جلسه ششم - کلاس HashSet در جاوا
جلسه ششم - کلاس HashSet در جاوا
به نام خدا

       
تقدیم به هموطنان عزیزم



جاوا را با لذت یاد بگیر!


آموزش زبان برنامه نویسی جاوا

Collections در جاوا

موضوع:
کلاس HashSet

جلسه: ششم

نویسنده : رحمان زارعی

جاوا را ساده،آسان و شیرین بنوشید!!!

سلام. امروز قصد داریم کلاس HashSet یکی از کلاس های موجود در فریم ورک Collection در جاوارو بررسی کنیم.
کلاس HashSet کلاس AbstractSet را extends و اینترفیس Set را implements کرده است. HashSet برای ایجاد یک مجموعه ای (collection) است، که از یک جدول hash برای ذخیره سازی استفاده می‌کند.

•    جدول hash یا hash table یک ساختمان داده برای جست و جو و ذخیره سازی اطلاعات است.


نکات مهم در مورد کلاس HashSet :
•    عناصر موجود در HashSet منحصربه فرد هستند، به عبارت دیگر HashSet نمی‌تواند عناصر تکراری داشته باشد.
•    HashSet برای ذخیره سازی عناصر از مکانیزمی به نام درهم سازی (hashing) استفاده می‌کند.
•    اگر در یک HashSet بیش از یک مقدار null وارد کنیم، HashSet تنها یک مقدار null برای ما برمی گرداند.


تفاوت بین List و Set :
List می‌تواند عناصر تکراری داشته باشد اما Set عناصر یکتا و غیر تکراری می‌گیرد.

سلسله مراتب کلاس HashSet :
طبق تصویر(1)، کلاس HashSet کلاس AbstractSet که اینترفیس Set را implements کرده را extends یا به ارث برده است. اینترفیس Set اینترفیس Collection را به ارث برده و اینترفیس Collection اینترفیس Iterable را extends یا به ارث برده است به عبارت دیگر اینترفیس Set فرزند اینترفیس های Collection و Iterable است.

سلسله مراتب کلاس HashSet  در جاوا

پکیج مورد نیاز برای تعریف کلاس HashSet :
برای استفاده از کلاس HashSet در برنامه خود باید پکیج زیر را بالا سر کلاس خود import کنید:

import java.util.HashSet;

سازنده های (Constructors) کلاس HashSet :
 
شمارهسازندهتوضیح
1HashSet()برای ایجاد یک HashSet پیشفرض استفاده می‌شود.
2HashSet(Collection c)برای ایجاد یک HashSet که توسط عناصر موجود در مجموعه c مقداردهی می‌شود.
مجموعه c می‌تواند یکی از اینترفیس ها یا کلاس های موجود در فریم ورک Collection باشد.
3HashSet(int capacity)برای ایجاد یک HashSet با ظرفیت مشخص استفاده می‌شود.
ظرفیت یک HashSet با افزودن هر عنصر، به صورت اتوماتیک افزایش می‌یابد.

متدهای (Methods) کلاس HashSet :
شمارهمتدتوضیح
1void clear()برای حذف کردن همه عناصر موجود در HashSet استفاده می‌شود.
2boolean contains(Object o)اگر عنصر مورد نظر در HashSet وجود داشت، مقدار true برمی گرداند.
3boolean add(Object o)برای افزودن عنصر مورد نظر به HashSet استفاده می‌شود.
در صورت تکراری بودن عنصر یا به عبارت دیگر وجود داشتن عنصر در HashSet، عنصر اضاف نمی‌شود.
4boolean isEmpty()اگر هیچ عنصری در HashSet وجود نداشت، مقدار true برمی گرداند.
به عبارت دیگر در صورت خالی بودن HashSet مقدار true برمی گرداند.
5boolean remove(Object o)اگر عنصر مورد نظر در HashSet وجود داشت، آن را حذف می‌کند.
6Object clone()یک کپی از شی HashSet برمی گرداند.
شی برگردانده شده از نوع کلاس Object هست که باید به HashSet آن را cast یا تبدیل کرد.
7Iterator iterator()برای پیمایش HashSet استفاده می‌شود.
8int size()تعداد عناصر موجود در HashSet را برمی گرداند.


نکته: عناصر موجود در HashSet طبقه بندی نشده است. به عبارت دیگر عناصر ذخیره شده در آن ترتیب خاصی ندارند و به صورت تصادفی در HashSet قرار می‌گیرند.


Example:

package hashSet_java like ;
import java.util.HashSet;
import java.util.Iterator;

class TestCollection9 {
  public static void main(String args[]) {
       // Creating HashSet and adding elements
       HashSet<String> set = new HashSet<String>();
       set.add("mohammad");
       set.add("hasan");
       set.add("reza");
          set.add("mohammad");
       set.add("zahra");
   
   
       // Traversing elements
       Iterator<String> itr = set.iterator();
       while (itr.hasNext()) {
           System.out.println(itr.next());
       }
   }
}

خروجی(output): خروجی این برنامه امکان داره برای شما متفاوت باشد! چرا که عناصر در HashSet به صورت تصادفی و بدون ترتیب خاصی ذخیره می‌شوند.
hasan
zahra
mohammad
reza

توضیحات:
HashSet<String> set = new HashSet<String>();

یک HashSet که عناصری از نوع String می‌تواند ذخیره کند، ایجاد کرده ایم.
1.set.add("mohammad");
2.set.add("hasan");
3.set.add("reza");
4.set.add("mohammad");
5.set.add("zahra");

•    با استفاده از متد add عناصر مورد نظر را به HashSet خود اضاف کرده ایم. عنصر "mohammad" به دلیل تکراری بودن تنها یک بار اضاف می‌شود.
   Iterator<String> itr = set.iterator();
       while (itr.hasNext()) {
           System.out.println(itr.next());
       }
 
•    با استفاده از اینترفیس Iterator، HashSet خود را پیمایش کرده ایم.
Example:
در مثال زیر ما یک کلاس Book داریم و از آن اشیا ساختیم، و سپس اشیای ایجاد شده از آن را در یک HashSet ذخیره کرده و در نهایت اطلاعات تمام اشیای Book ذخیره شده در HashSet را پیمایش و چاپ کرده ایم.

package hashSet_java like ;

import java.util.*;

class Book {
   int id;
   String name, author, publisher;
   int quantity;

  public Book(int id, String name, String author, String publisher,
           int quantity) {
       this.id = id;
       this.name = name;
       this.author = author;
       this.publisher = publisher;
       this.quantity = quantity;
   }
}

public class HashSetExample {
   public static void main(String[] args) {
       HashSet<Book> set = new HashSet<Book>();
     // Creating Books
       Book b1 = new Book(101, "Let us C", "Yashwant Kanetkar", "BPB", 8);
       Book b2 = new Book(102, "Data Communications & Networking", "Forouzan",
               "Mc Graw Hill", 4);
       Book b3 = new Book(103, "Operating System", "Galvin", "Wiley", 6);
     // Adding Books to HashSet
       set.add(b1);
       set.add(b2);
       set.add(b3);
       // Traversing HashSet
       for (Book b : set) {
           System.out.println(b.id + " " + b.name + " " + b.author + " "
                   + b.publisher + " " + b.quantity);
       }
   }
}

خروجی(output):
101 Let us C Yashwant Kanetkar BPB 8
102 Data Communications & Networking Forouzan Mc Graw Hill 4
103 Operating System Galvin Wiley 6
ادامه این جلسه آموزشی رو به صورت کتاب الکترونیکی کامل در لینک زیر دانلود کنید

این جلسه آموزشی را می‌توانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)




کانال تلگرام آموزش جاوا



آموزش آسان و ساده زبان برنامه نویسی جاوا
لینک دانلود

نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا عضو کانال تلگرام ما شوید.
 

telegraminstagram
نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

3 نظر
امیر کاشانی
یکشنبه بیست و دوم خرداد ۰۱
پاسخ
(1)
(1)
امیر کاشانی
من هر مقاله اي که تا الان خوندم از سايت مفيد بوده ممنونم
شهریار
شنبه ششم آذر ۰۰
پاسخ
()
()
شهریار
ممنون از شما، ادامه ي آموزش کالکشن ها رو نميگذاريد؟
:)
چهارشنبه بیست و نهم مرداد ۹۹
پاسخ
()
()
:)
ممنون از سايت خوبتون. لطفا آموزش هارو بيشتر کنيد
پاسخ مدیر سایت
سلام.از نظر لطف و محبت شما سپاسگزارم.چشم حتما
پاسخ مدیر سایت
هدر سایت
مشاهده سرفصل ها و ثبت نام در دوره Spring Boot جاواپرو  [کلیک کنید]
آموزش پروژه محور اسپرینگ بوت(Spring Boot)-سیستم دانشگاه
ثبت نام در دوره آموزش Spring security
دوره پرتاب | آموزش پیش نیازهای برنامه نویسی
دوره آموزش مبانی زبان برنامه نویسی جاوا
دوره آموزش مفاهیم پیشرفته زبان برنامه نویسی جاوا
مقدمه ای از زبان برنامه نویسی جاوا(java)
آموزش زبان برنامه نویسی جاوا
آموزش گرافیک در زبان برنامه نویسی جاوا
آموزش مدیریت چیدمان گرافیکی در زبان جاوا
آموزش ساخت بازی دوبعدی در زبان جاوا
Collection ها در زبان برنامه نویسی جاوا
آموزش پروژه محور ساخت برنامه مدیریت بانک با JavaFX
نمونه پروژه های رایگان زبان جاوا
آموزش دیتابیس در زبان برنامه نویسی جاوا
نمونه مثال پایه ای زبان برنامه نویسی جاوا
نمونه مثال String در زبان برنامه نویسی جاوا
آموزش جامع برنامه نویسی JavaFX
آموزش ساخت برنامه آزمون تستی در JavaFX
آموزش برنامه نویسی سوکت در جاوا
آموزش ساخت برنامه دفترچه تلفن با JavaFX
آموزش ساخت ربات ساده تلگرام با زبان جاوا
آموزش ساخت برنامه ماشین حساب با JavaFX
آموزش ساخت برنامه ساده مدیریت ایمیل ها با JavaFX
دوره آموزش Spring Boot
سفارش انجام پروژه زبان برنامه نویسی جاوا(JAVA)
سفارش انجام پروژه برنامه نویسی متلب(MATLAB) با قیمت منصفانه و تحویل به موقع
سفارش انجام پروژه زبان برنامه نویسی سی شارپ (#C)
سفارش انجام پروژه زبان برنامه نویسی سی(C)
سفارش انجام پروژه زبان برنامه نویسی پایتون(Python)
سفارش انجام پروژه زبان برنامه نویسی PHP (پی اچ پی)
سفارش انجام پروژه زبان برنامه نویسی اسمبلی(Assembly)
سفارش انجام پروژه زبان برنامه نویسی جاوا اسکریپت (Javascript)
سفارش انجام پروژه هوش مصنوعی
سفارش انجام پروژه طراحی الگوریتم
سفارش انجام پروژه ساختمان داده ها
سفارش انجام پروژه مهندسی نرم افزار
سفارش انجام پروژه شبکه های کامپیوتری
سفارش انجام پروژه پایگاه داده: دیتابیس (database)
 سفارش انجام پروژه سیستم عامل
سفارش انجام پروژه پاورپوینت(PowerPoint)
سفارش انجام پروژه اکسل (Excel)
سفارش انجام تحقیق و تهیه مقاله
سوالات متداول برنامه نویسی
جدیدترین مطالب
گفتگو را شروع کنید
مشاوره ،تدریس خصوصی و سفارش انجام انواع پروژه های برنامه نویسی