דוגמה להגדרת Java



Java ערכת ג'אווה לקבוע

ממשק Java Set הוא אוסף בלתי מסודר של אלמנטים שאינם מכילים אלמנטים כפולים. ממשק ה- Set מספק תכונות של הסט המתמטי ב- Java. במדריך זה נסקור דוגמאות שונות של ערכות ג'אווה לשיטות קביעת Java ולשימוש בהן.

תכונות של ממשק סט

  • הוא מכיל אלמנטים ייחודיים שמשמעותו שהוא אינו מאפשר ערכים כפולים
  • ל- Java Set אין שום סדר באחסון האלמנטים
  • אין לה אינדקס ולכן איננו יכולים לגשת לאלמנטים בהתבסס על המיקום.
  • מכיוון שמדובר בממשק, אנו יכולים ליישם אותו באמצעות כל אחד משיעורי היישום Set
  • מרחיב את ממשק האוסף

ההבדל בין Java Set ו- Java List

  • Java Set הוא אוסף לא מסודר של אלמנטים ואילו רשימה הוא אוסף מסודר של אלמנטים.
  • לסט אין גישה מבוססת אינדקס אך לרשימה יש אינדקס שאיתו נוכל לגשת לאלמנטים.
  • ב- Set, איננו יכולים להוסיף ערכים כפולים בעוד ש- List מאפשרת להוסיף ערכים כפולים.

הגדר יישום

מאז Java Set הוא ממשק, איננו יכולים ליצור אובייקט ישירות. לפיכך עלינו ליישם את אחד השיעורים כמו HashSet, TreeSet, LinkedHashSet או EnumSet. כל מחלקה קבועה מתנהגת בצורה שונה כמפורט להלן:

  • HashSet - אין סדר או רצף של אלמנטים בזמן חציית הסט.
  • TreeSet - הוא משמר את סדר האלמנטים יחד עם המיון
  • LinkedHashSet - הוא שומר על סדר האלמנטים זהה להכנסה

הגדר את Java

דוגמה להגדרת Java

על מנת ליישם את הממשק המוגדר, עלינו לייבא את חבילה java.util. * אחר לייבא את חבילות המחלקה הבודדות בנפרד.

import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet;

public class SetExample {

  public static void main(String[] args) {
    Set set1 = new HashSet();
    Set set2 = new TreeSet();
    Set set3 = new LinkedHashSet();

  }

}

אנו יכולים גם ליצור סטים כלליים כפי שמוצג להלן. כאן ציינו את HashSet כסוג מחרוזת ו- TreeSet כסוג שלם. מכאן שאובייקטים אלה מקבלים ערכים רק מסוגים ספציפיים אלה.

import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;

public class SetExample {

  public static void main(String[] args) {
    Set<String> setstring = new HashSet<String>();
    Set<Integer> setint = new TreeSet<Integer>();
  }
}

שיטות Java Set

הסט כולל את כל השיטות של ממשק האוסף יחד עם השיטות שהוזכרו להלן.

שִׁיטָהתיאורפרמטר
הוסף בוליאני (מחרוזת e)מוסיף אלמנט לסט אם הוא עדיין לא קיים. זה מחזיר שקר אם אלמנט כבר קיים בערכה ומתעלם מהשיחהe - האלמנט שיש להוסיף לסט
addAll בוליאני (Collectionc)מוסיף לערך את כל האלמנטים באוסף אם הוא אינו מופיעג - אוסף של אלמנטים שיש להוסיף
בטל ברור ()מסיר את כל האלמנטים מהסט והסט יהיה ריק
מכיל בוליאני (אובייקט o)בודק אם הסט מכיל את האלמנט ומחזיר true אם קייםאלמנט לחיפוש בערכה
בוליאני מכיל את כל (אוסף ג ')בודק אם האוסף הוא קבוצת משנה של הסט ומחזיר נכון אם הוא קייםג - אוסף אלמנטים
בוליאני שווה (אובייקט o)בודק את שוויון הסט בין האובייקט שהועבר. זה מחזיר נכון אם שניהם סטים ומכילים אותם אלמנטים וגודלo - אובייקט שיש להשוות
בוליאני הוא ריק ()בודק אם הסט ריק או לא ומחזיר true אם ריק
איטרטור איטרטור ()מחזיר איטרטור לנווט בין האלמנטים בערכה
הסר בוליאני (אובייקט o)מסיר את האלמנט הספציפי מהסט ומחזיר true אם האלמנט מוסרo - האלמנט שיש להסיר
remove בוליאני כל (אוסף ג)מסיר את כל האלמנטים באוסף מהסט אם קייםג - אוסף של אלמנטים להסרה
boolean retainAll (אוסף ג)שומר רק על האלמנטים באוסף בערכה, כלומר מסיר את כל האלמנטים האחרים שאינם חלק מהאוסףג - אוסף של אלמנטים שיש לשמור עליהם
גודל int ()מחזיר את מספר האלמנטים בערכה
מפצל מפוצל אינטראטור ()יוצר איטרטר מפוצל על פני האלמנטים בערכה
אובייקט [] toArray ()ממיר את כל האלמנטים בערכה למערך
מחרוזת toString ()מחזיר ייצוג מחרוזת של האובייקט

קבע חריגים

סט Java זורק את החריגים שלהלן

  • לא נתמךOperationException
  • NullPointerException
  • ClassCastException
  • IllegalArgumentException

הוסף והסר אלמנטים מסט

בדוגמה שלהלן, ראשית אנו יוצרים HashSet ומוסיפים 2 אלמנטים. ואז אנו יוצרים HashSet נוסף ומוסיפים 2 אלמנטים נוספים. לאחר מכן זה מתווסף כאוסף לסט הראשון.

בדוגמה להסיר, ראשית אנו מסירים אלמנט מהקבוצה הראשונה ואז מסירים את כל האלמנטים מהמערכה השנייה.

import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet;

public class SetExample {

  public static void main(String[] args) {

    Set<String> setstring = new HashSet<String>();
    setstring.add("Java");
    setstring.add("Javascript");
    System.out.println(setstring);
    
    Set<String> string2 = new HashSet<String>();
    string2.add("C");
    string2.add("C++");
    
    setstring.addAll(string2);
    System.out.println("Elements in set after addAll operation");
    System.out.println(setstring);
    
    setstring.remove("Javascript");
    System.out.println("Elements in the set after remove opertaion");
    System.out.println(setstring);
    
    setstring.removeAll(string2);
    System.out.println("Elements in the set after removeAll opertaion");
    System.out.println(setstring);
    
  }
  

}
Output:
[Java, Javascript]
Elements in set after addAll operation
[Java, C++, C, Javascript]
Elements in the set after remove opertaion
[Java, C++, C]
Elements in the set after removeAll opertaion
[Java]

מיון אלמנטים באמצעות TreeSet

הנה, הכרזנו על מערך של מספרים שלמים ואז הוספנו את האלמנטים ל- HashSet באמצעות לולאה. בפלט, אתה יכול לראות כי האלמנט הכפול "12" אינו כלול שהוא תכונת הסט. אנו יכולים למיין את האלמנטים של HashSet באמצעות TreeSet כפי שנראה בדוגמה הבאה.

import java.util.*;

public class SetSort {

  public static void main(String[] args) {
    Set<Integer> numbers = new HashSet<Integer>();
    int[] a = {34,78,12,67,45,23,12,89};
    for(int i=0;i<a.length;i++) {
      numbers.add(a[i]);
    }
    System.out.println("Elements in HashSet");
    System.out.println(numbers);
    
    Set<Integer> treeset = new TreeSet<Integer>(numbers);
    System.out.println("Elements in treeset after sort");
    System.out.println(treeset);
  }

}
Output:
Elements in HashSet
[34, 67, 23, 89, 12, 45, 78]
Elements in treeset after sort
[12, 23, 34, 45, 67, 78, 89]

המרת ערכת Java ל- Array

אנחנו יכולים להמיר סט ל- מערך של אלמנטים בשיטת toArray כמתואר להלן.

import java.util.*;

public class SetArray {

  public static void main(String[] args) {
    Set<String> names = new HashSet<String>();
    names.add("Roshan");
    names.add("Kiran");
    names.add("Tejas");
    names.add("Karthik");
    
    String[] strnames = names.toArray(new String[names.size()]);
    for(String strvalues: strnames) {
      System.out.println(strvalues);
    }

  }

}
Output:
Roshan
Kiran
Tejas
Karthik

דוגמה לתוכנית Java של קבוצות פעולות (איחוד, צומת והבדל)

בדוגמה זו, יצרנו 2 קבוצות שלמות. כדי לבצע איחוד של 2 סטים, אנו משתמשים בשיטת addAll, שתוסיף את כל האלמנטים הייחודיים משתי הערכות. לצומת אנו משתמשים בשיטת retainAll כדי לשמור רק על האלמנטים המשותפים בין הסטים. כדי למצוא את ההבדל בין 2 קבוצות, אנו משתמשים בשיטה removeAll שתסיר את כל האלמנטים ב- set2 יחד עם אלמנטים משותפים ב- set1.

import java.util.*;

public class SetOperations {

  public static void main(String[] args) {
    Set<Integer> set1 = new HashSet<Integer>();
    set1.add(3);
    set1.add(7);
    set1.add(5);
    set1.add(1);
    System.out.println("Set 1 : " + set1);
    
    Set<Integer> set2 = new HashSet<Integer>();
    set2.add(3);
    set2.add(4);
    set2.add(9);
    set2.add(5);
    
    System.out.println("Set 2 : " + set2);
    
    Set<Integer> a = new HashSet<Integer>(set1);
    a.addAll(set2);
    
    System.out.println("Union of Set 1 and Set 2 : " + a);
    
    Set<Integer> b = new HashSet<Integer>(set1);
    b.retainAll(set2);
    System.out.println("Intersection of Set 1 and Set 2 : " + b);
    
    Set<Integer> c = new HashSet<Integer>(set1);
    c.removeAll(set2);
    System.out.println("Difference between Set 1 and Set 2 : " + c);
  }

}
Output:
Set 1 : [1, 3, 5, 7]
Set 2 : [3, 4, 5, 9]
Union of Set 1 and Set 2 : [1, 3, 4, 5, 7, 9]
Intersection of set 1 and set 2 : [3, 5]
Difference between 2 sets : [1, 7]

סיכום

במדריך זה למדת על סט ב- Java וכיצד ליצור ולהשתמש בערכות למניפולציות שונות.

התייחסות