****set集合:无序,不可以重复。因为无序,所有不能跟据指定下标进行查询。
set集合查询遍历有俩种方法:
// foreach循环遍历
Set set=new HashSet<>();
set.add("zs");
set.add("ls");
set.add("ww");
set.add("gb");
set.add("td");
for (Object s : set) {
System.out.println(s);
}
//迭代器
//迭代器循环遍历
Set set=new HashSet<>();
set.add("zs");
set.add("ls");
set.add("ww");
set.add("gb");
set.add("td");
Iterator it = set.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
// //在hashset中如果要添加值,会默认比较这两个值的equals方法
// //如果通过比较相等,那么就不会添加
// //但是student类是我们自己新写的类
// //所有调用他的equals方法实际是调用他的父类的
// //equals方法默认比较的是地址,所有他会添加进来。
// //因为我自己写的类equals比较的是地址,
// //所有去重写一个equals方法来进行比较。
Set<Student> set=new HashSet<Student>();
// set.add(new Student(1, "zs", "m"));
// set.add(new Student(2, "ls", "y"));
// set.add(new Student(1, "zs", "m"));
// set.add(new Student(3, "td", "m"));
// //foreach
// for (Student s : set) {
// System.out.println(s);
// }
// //迭代器
// Iterator<Student> it = set.iterator();
// while (it.hasNext()) {
// System.out.println(it.next());
// }
//treeset是根据首字母的ASCII码来进行比较的
// Set set=new TreeSet();
// set.add("zs");
// set.add("ls");
// set.add("ww");
// set.add("td");
// for (String s : set) {
// System.out.println(s);
// }
//comparable接口
/**
* 因为我们自己新写的类没有comparable接口
* 所有我们要在新写的类,去实现comparable接口
* 实现comparable接口里面的方法来进行判断
/
//这个是用来当前学生,跟传过来的学生进行比较
@Override
public int compareTo(Student o) {
//判断当前学生,跟传过来的学生进行比较是否相等
//如果不相等就减去
/*
* 返回三个值
* 如果相等返回0;
* 如果小,返回-1;
* 如果大,返回大
*/
if(this.sid!=o.sid) {
return this.sid-o.sid;
}
else if(this.sname!=o.sname) {
return this.sname.hashCode()-o.sname.hashCode();
}
else {
if(this.sex!=o.sex) {
return this.sex.hashCode()-o.sex.hashCode();
}
}
return 0;
}
//根据他的sid排序
// Set<Student> set=new TreeSet<Student>();
// set.add(new Student(1, "zs", "m"));
// set.add(new Student(2, "ls", "y"));
// set.add(new Student(3, "td", "m"));
// for (Student s : set) {
// System.out.println(s);
// }**
/**
//comparator接口
* 因为我们自己新写的类没有Comparator接口
* 所有我们要在新写的类,去实现Comparator接口
* 实现Comparator接口里面的方法来进行判断
*/
@Override
public int compare(Student o1, Student o2) {
if(o1.equals(02)) {
if(!o1.equals(o2)) {
return o1.compareTo(o2);
}
}
return 0;
}**