一、HashSet与ArrayList的区别
HashSet中的数据内容不能重复,而ArrayList中的内容可以重复。
比如:你往ArrayList中存入三个值:“王五”、“赵六”、“王五”显示的是三个值,而HashSet显示的是两个值:“赵六”、“王五”,因为,王五重复了,后面的会把前面的替换掉。
二、比较两个对象是否相等(equals函数)
比较的是内容,不是地址。
三、增加、删除、遍历实例(单元素,不是数组对象)
package z_Hashset;
import java.util.HashSet;
public class book {
public static void main(String[] args) {
// TODO Auto-generated method stub
HashSet<String> m_book = new HashSet<String>(); // 声明一个对象
// ======== 【添加】往m_book中添加内容,每个内容一个元素。
m_book.add("1、《Java大全》");
m_book.add("2、《Excel入门》");
m_book.add("3、《Word精通》");
m_book.add("4、《HTML指南》");
m_book.add("5、《SQL数据库基础》");
// 循环遍历出 m_book中每一个元素的值。
System.out.println("============= 完整内容 ============");
for(String i:m_book)
{
System.out.println(i);
}
System.out.println("添加相同内容:"+"5、《SQL数据库基础》 "+"之后的显示");
System.out.println("添加相同内容:"+"6、《mysql数据库基础》 "+"之后的显示");
System.out.println("============= 添加后内容 ============");
m_book.add("5、《SQL数据库基础》");
m_book.add("6、《mysql数据库基础》");
for(String i:m_book)
{
System.out.println(i);
}
System.out.println("============= 删除1、2后的内容 ============");
m_book.remove("1、《Java大全》"); // 按内容删除,注意:内容要一模一样.
m_book.remove("2、《Excel入门》"); // 按内容删除,注意:内容要一模一样.
for(String i:m_book)
{
System.out.println(i);
}
System.out.println("============= 全部清空后的内容 ============");
// ======= 【删除】删除m_book某元素的值。
m_book.clear(); // 清空内容.
for(String i:m_book)
{
System.out.println(i);
}
}
}
四、增加、删除、遍历实例(数组对象元素,用For和)
1.student.java(数据结构-构造类)
package z_Hashset;// 运行代码时,注意先建立这个【包】
public class Student {
private int id; // 编号
private String name;// 姓名
private String old;// 年龄
public Student() {}
public Student(int id, String name, String old) {
this.id = id;
this.name = name;
this.old = old;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getOld() {
return old;
}
public void setOld(String old) {
this.old = old;
}
}
2.HashSetDemo.java(用iterator和For遍历实例)
package z_Hashset; // 运行代码时,注意先建立这个【包】
import java.util.*;
import Z_LinkedList.Student;
public class HashSetDemo {
public static void main(String[] args) {
Set mm=new HashSet();
Student student_1= new Student(1,"张三","15"); // 实例化Student类,id,name,old
Student student_2= new Student(2,"李四","16");
Student student_3= new Student(3,"王五","16");
mm.add(student_1); // 把类存入数组LinkedList中
mm.add(student_2);
mm.add(student_3);
mm.add(new Student(4,"老大","18")); // 在第一条插入
System.out.println("学生总数为:"+mm.size());
System.out.println("====== 用For遍历HashSet =======");
for(Object obj:mm) // 用For遍历对象
{
Student student=(Student)obj; // 把Student转换成一个数据集合对象
System.out.println(student.getId()+"."+student.getName()+" 年龄:"+student.getOld());
}
System.out.println("====== 用Iterator遍历HashSet =======");
Iterator iter = mm.iterator();// 用iterator遍历对象
while(iter.hasNext())
{
Student s_student=(Student)iter.next(); // 把Student转换成一个数据集合对象
System.out.println(s_student.getId()+"."+s_student.getName()+" 年龄:"+s_student.getOld());
}
}
}