Java设置示例



Java的 Java集

Java Set接口是不包含任何重复元素的无序元素集合。 Set接口提供了Java中的数学Set的功能。 在本教程中,我们将介绍Java设置方法及其用法的各种Java设置示例。

设置界面的功能

  • 它包含唯一元素,这意味着它不允许重复值
  • Java Set在存储元素时没有任何顺序
  • 它没有任何索引,因此我们无法根据位置访问任何元素。
  • 由于它是一个接口,我们可以使用任何Set实现类来实现它
  • 扩展收藏界面

Java Set和Java List之间的区别

  • Java Set是元素的无序集合,而 名单 是元素的有序集合。
  • Set没有基于索引的访问,但是List具有一个可以访问元素的索引。
  • 在Set中,我们不能添加重复值,而List允许添加重复值。

设定执行

Java Set是一个接口,我们无法直接创建对象。 因此,我们需要实现HashSet,TreeSet,LinkedHashSet或EnumSet之类的类之一。 每个集合类的行为方式都不同,如下所述:

  • HashSet –遍历集合时没有元素的顺序或顺序。
  • TreeSet –保留元素的顺序以及排序
  • LinkedHashSet –保留与插入相同的元素顺序

设置Java

Java设置示例

为了实现set接口,我们需要导入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方法

Set包括Collection接口的所有方法以及下面提到的方法。

选项产品介绍产品型号
布尔值add(String e)如果元素尚不存在,则将其添加到集合中。 如果元素已经存在于集合中,则返回false并忽略该调用e-要添加到集合中的元素
布尔addAll(Collectionc)如果集合中不存在集合中的所有元素,则将其添加到集合中c-要添加的元素的集合
无效clear()从集合中删除所有元素,集合将为空
布尔contains(Object o)检查集合中是否包含元素,如果存在则返回trueo-要在集合中搜索的元素
boolean containsAll(Collection c)检查集合是否是集合的子集,如果存在,则返回truec-元素集合
boolean equals(Object o)检查集合与传递的对象是否相等。 如果两个都是set且包含相同的元素和大小,则返回trueo-需要比较的对象
boolean isEmpty()检查集合是否为空,如果为空,则返回true
迭代器iterator()返回一个迭代器,以浏览集合中的元素
布尔值remove(Object o)从集合中移除特定元素,如果该元素被移除,则返回trueo-要删除的元素
boolean removeAll(Collection c)从集合中删除集合中的所有元素(如果存在)c-要删除的元素的集合
boolean keepAll(Collection c)仅保留集合中集合中的元素,这意味着它将删除不属于集合的所有其他元素c-要保留的元素的集合
int size()返回集合中的元素数
SplitIterator splititerator()在集合中的元素上创建拆分迭代器
Object [] toArray()将集合中的所有元素转换为数组
字符串toString()返回对象的字符串表示形式

设置例外

Java设置抛出 以下例外

  • 不支持的操作异常
  • 空指针异常
  • 类转换异常
  • 非法参数异常

从集合中添加和删除元素

在下面的示例中,我们首先创建一个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排序元素

在这里,我们声明了一个整数数组,然后使用for循环将元素添加到HashSet中。 在输出中,您可以看到不包含重复元素“ 12”,这是已设置的功能。 我们可以使用TreeSet对HashSet的元素进行排序,如以下示例所示。

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集转换为数组

我们可以将集合转换成 排列 如下所述,使用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

Set操作(Union,intersection和difference)的示例Java程序

在此示例中,我们创建了2个整数集。 要执行2个集合的并集,我们使用addAll方法,该方法将添加两个集合中的所有唯一元素。 对于交集,我们使用retainAll方法仅保留集合之间的公共元素。 为了找到两个集合之间的差异,我们使用removeAll方法,该方法将删除set2中的所有元素以及set2中的公共元素。

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中的Set以及如何创建set并将其用于不同的操作。

参考