Java语言-25:HashSet集合

1、HashSet集合:

                        1)HashSet是Set接口的一个实现类,Set一样,集合中储存的元素不可重复,且元素无序。

                        2)在向HashSet集合中添加对象时先确定元素的存储位置,然后再调用对象equals()方法来确保元素有没有重复元素。

2、代码实现其特点:

        package HashSet;


import java.util.HashSet;


public class HashSet_one {


public static void main(String[] args) {
//创建hashSet集合
HashSet<String> set = new HashSet<String>();

//向集合中添加重复元素
set.add("it");
set.add("is");
set.add("it's");
set.add("it");
set.add("is");
set.add("it's");
set.add("it");

//遍历该集合
for(String s:set){
System.out.println(s);
/*输出:
*  it's
is
it
* */
}


}


}

3、HashSet对象存储过程

        

4、将自定义对象存入HashSet。(代码实现):该程序在两个class文件下,故读者不能在一个class下运行,若运行,需修改。

package HashSet;


public class Student {
private String name;
private String number;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(String name, String number) {
super();
this.name = name;
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + ((number == null) ? 0 : number.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Student other = (Student) obj;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (number == null) {
if (other.number != null)
return false;
} else if (!number.equals(other.number))
return false;
return true;
}


}

package HashSet;


import java.util.HashSet;


public class HashSet_two {


public static void main(String[] args) {
//创建HashSet集合对象
HashSet<Student> hash = new HashSet<Student>();

//创建学生对象
Student st1 = new Student("张三","01");
Student st2 = new Student("张三","01"); //添加重复元素
Student st3 = new Student("李四","02");
Student st4 = new Student("张三","03");
Student st5 = new Student("李四","01");
Student st6 = new Student("李四","01"); //添加重复元素

//向集合中存入元素
hash.add(st1);
hash.add(st2);
hash.add(st3);
hash.add(st4);
hash.add(st5);
hash.add(st6);

//遍历打印集合中的元素
for(Student s:hash){
System.out.println(s.getName()+"----"+s.getNumber());
/*
*  张三----03                    
张三----01
李四----02

李四----01

                    体现了HashSet的特点,无重复元素,无序



* */
}


}


}

        

猜你喜欢

转载自blog.csdn.net/qq_41833394/article/details/80247336