Пример за задаване на Java



Ява Java набор комплект

Интерфейсът на Java Set е неподредена колекция от елементи, които не съдържат дублиращи се елементи. Интерфейсът Set предоставя функции на математическия набор в Java. В този урок ще разгледаме различни примери за набор от Java на методи за набор от Java и тяхното използване.

Характеристики на интерфейса Set

  • Той съдържа уникални елементи, което означава, че не позволява дублиране на стойности
  • Java Set няма никакъв ред при съхраняване на елементите
  • Той няма никакъв индекс и следователно нямаме достъп до никакви елементи въз основа на позицията.
  • Тъй като това е интерфейс, можем да го приложим с помощта на който и да е от класовете за изпълнение на Set
  • Разширява интерфейса за събиране

Разлика между Java Set и Java List

  • Java Set е неподредена колекция от елементи, докато списък е подредена колекция от елементи.
  • Set няма достъп, базиран на индекс, но List има индекс, с който можем да имаме достъп до елементи.
  • В Set не можем да добавяме дублирани стойности, докато Списъкът позволява добавяне на дублиращи се стойности.

Задайте изпълнение

Тъй като 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 като String тип и TreeSet като Integer тип. Следователно тези обекти приемат стойности само от тези специфични типове.

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 методи

Комплектът включва всички методи на интерфейса за събиране заедно със споменатите по-долу методи.

Начин на доставкаОписаниеПараметър
булево добавяне (String e)Добавя елемент към набора, ако той вече не съществува. Той връща false, ако елементът вече съществува в набора и игнорира повикванетоe - елементът, който ще се добави към набора
boolean addAll (Collectionc)Добавя всички елементи в колекцията към набора, ако не присъствав - колекция от елементи за добавяне
празно ясно ()Премахва всички елементи от набора и комплектът ще бъде празен
boolean съдържа (Обект o)Проверява дали комплектът съдържа елемента и връща true, ако присъстваo - елемент за търсене в набора
boolean containsAll (Колекция c)Проверява дали колекцията е подмножество на набора и връща true, ако е налицев - колекция от елементи
булево равно (Обект o)Проверява равенството на множеството с подадения обект. Връща true, ако и двете са множества и съдържат едни и същи елементи и размерo - обект, който трябва да бъде сравнен
boolean isEmpty ()Проверява дали комплектът е празен или не и връща true, ако е празен
Итератор на итератор ()Връща итератор за навигация през елементите в набора
булево премахване (обект o)Премахва конкретния елемент от набора и връща true, ако елементът е премахнатo - елементът, който трябва да бъде премахнат
boolean removeAll (Колекция c)Премахва всички елементи в колекцията от набора, ако има такивав - колекция от елементи, които трябва да бъдат премахнати
boolean retainAll (Колекция c)Запазва само елементите в колекцията в набора, което означава, че премахва всички останали елементи, които не са част от колекциятав - колекция от елементи, които трябва да бъдат запазени
размер int ()Връща броя на елементите в набора
SplitIterator splititerator ()Създава разделен итератор върху елементите в набора
Обект [] към масив ()Преобразува всички елементи в набора в масив
String toString ()Връща низово представяне на обекта

Задайте изключения

Изхвърляния от Java по-долу изключения

  • UnsupportedOperationException
  • 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, използвайки for цикъл. В изхода можете да видите, че дублиращият елемент „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 Set в 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 програма за Set операции (съюз, пресичане и разлика)

В този пример създадохме 2 целочислени набора. За да извършим обединение от 2 набора, използваме метода addAll, който ще добави всички уникални елементи от двата набора. За пресичане използваме метода retainAll, за да запазим само общите елементи между множествата. За да намерим разликата между 2 набора, използваме метода removeAll, който ще премахне всички елементи в набора2 заедно с общите елементи в набор1.

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]

заключение

В този урок сте научили за Set в Java и как да създадете и използвате набор за различни манипулации.

препратка