جستجو
۱۳۹۶/۱۱/۲۰ جمعه
(2)
(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_javalike;
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_javalike;

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
نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

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

0 نظر
طراحی شده توسط شرکت طراحی سایت و سایت ساز آنلاین یوتاب - فروشگاه ساز اینترنتیطراحی شده توسط شرکت طراحی سایت و سایت ساز آنلاین یوتاب - فروشگاه ساز اینترنتی