How to use Set interface in Java to store arrays without duplicate elements
Set interface
The Set interface, like the List interface, inherits the Collection interface. The elements in the Set interface are unordered, and certain rules are used to ensure that the stored elements are not repeated.
HashSet collection
HashSet is an implementation class of the Set interface. The stored elements are non-repeatable, and the elements are unordered. When an object is added to the HashSet collection, First, the hashCode() method of the object is called to calculate the hash value of the object to determine the storage location of the element. If the hash values are the same at this time, call the equals() method of the object to ensure that there are no duplicate elements at this position.
package 集合类; import java.util.HashSet; import java.util.Iterator; public class Set { public static void main(String[] args) { HashSet set=new HashSet(); set.add("hello"); set.add("world"); set.add("abc"); set.add("hello"); Iterator it=set.iterator(); while(it.hasNext()){ Object obj=it.next(); System.out.print(obj+ " "); } } }
Running results
package 集合类; import java.util.HashSet; class Student{ String id; String name; public Student(String id,String name){ this.id=id; this.name=name; } public String toString(){ String s = id + ":" + name; return s; } } public class Set1 { public static void main(String[] args) { HashSet hs=new HashSet(); Student stu1=new Student("1","hello"); Student stu2=new Student("2","world"); Student stu3=new Student("1","hello"); hs.add(stu1); hs.add(stu2); hs.add(stu3); System.out.println(hs); } }Running results
package API; import java.util.HashSet; class Student{ private String id; private String name; public Student(String id,String name){ this.id=id; this.name=name; } //重写toString方法 public String toString(){ return id+ ":"+name; } //重写hashCode方法 public int hashCode(){ //返回id属性的哈希值 return id.hashCode(); } public boolean equals(Object obj){ //判断是否是同一个对象 if(this==obj){ return true; } //判断对象是Student类型 if(!(obj instanceof Student)){ return false; } //将对象强转为Student类型 Student stu=(Student) obj; //判断id是否相同 boolean b=this.id.equals(stu.id); return b; } } public class Set2 { public static void main(String[] args) { HashSet hs=new HashSet(); Student stu1=new Student("1","hello"); Student stu2=new Student("2","world"); Student stu3=new Student("1","hello"); hs.add(stu1); hs.add(stu2); hs.add(stu3); System.out.println(hs); } }Running results Because the Student class overrides the hashCode() and equals() methods of the Object class. Return the hash value of the id attribute in the hashCode() method, compare whether the id attributes of the objects are equal in the equals() method, and return the result. When the add() method of the HashSet collection is called to add the stu3 object, it is found that its hash value is the same as the stu2 object, and stu2.equals(stu3) returns true. HashSet determines that the two objects are the same, so the duplicate Student objects are removed.
The above is the detailed content of How to use Set interface in Java to store arrays without duplicate elements. For more information, please follow other related articles on the PHP Chinese website!

The article discusses using Maven and Gradle for Java project management, build automation, and dependency resolution, comparing their approaches and optimization strategies.

The article discusses creating and using custom Java libraries (JAR files) with proper versioning and dependency management, using tools like Maven and Gradle.

The article discusses implementing multi-level caching in Java using Caffeine and Guava Cache to enhance application performance. It covers setup, integration, and performance benefits, along with configuration and eviction policy management best pra

The article discusses using JPA for object-relational mapping with advanced features like caching and lazy loading. It covers setup, entity mapping, and best practices for optimizing performance while highlighting potential pitfalls.[159 characters]

Java's classloading involves loading, linking, and initializing classes using a hierarchical system with Bootstrap, Extension, and Application classloaders. The parent delegation model ensures core classes are loaded first, affecting custom class loa


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

SublimeText3 English version
Recommended: Win version, supports code prompts!

WebStorm Mac version
Useful JavaScript development tools

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

Zend Studio 13.0.1
Powerful PHP integrated development environment