java 关于set集合遍历的问题。我打印不出学生信息怎么办??

import java.util.*;
public class Student1 {
private String StuNo;
private String StuName;
private int age;
private String email;
public Student1(String StuNo,String StuName,int age,String email){
this.StuNo=StuNo;
this.age=age;
this.StuName=StuName;
this.email=email;
}
public String getStuNo(){
return StuNo;
}
public void setStuNo(String StuNo){
this.StuNo=StuNo;
}
public String getStuName(){
return StuName;
}
public void setStuName(String StuName){
this.StuName=StuName;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age=age;
}
public String getEmail(){
return email;
}
public void setEmail(){
this.email=email;
}

public static void main (String [] args){
Student1 s1=new Student1("1","l4",18,"qwe@qq");
Student1 s2=new Student1("2","w5",19,"asd@sina");
Student1 s3=new Student1("3","z6",20,"zxcv@shou");
Student1 s4=new Student1("4","t7",21,"hkl@163");
Set set=new HashSet();
set.add(s1);
set.add(s2);
set.add(s3);
set.add(s4);
Iterator it=set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}

}

set集合遍历打印不出学生信息,说明方法错误。
正确对 set 遍历,即可实现打印,具体方法如下:
1、迭代遍历:
Set<String> set = new HashSet<String>();
Iterator<String> it = set.iterator();
while (it.hasNext()) {
String str = it.next();
System.out.println(str);
}

2、for循环遍历:
for (String str : set) {
System.out.println(str);
}

优点还体现在泛型 假如 set中存放的是Object 。

Set<Object> set = new HashSet<Object>();
for循环遍历:
for (Object obj: set) {
if(obj instanceof Integer){
int aa= (Integer)obj;
}else if(obj instanceof String){
String aa = (String)obj
}
........
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-10
我不知道你说用迭代器怎么写是什么意思,你自己不是写好迭代器了吗?
你现在要做的就是将下面的代码复制粘贴到你写的Student1类中:
@Override
public String toString() {
return "StuNo="+StuNo+",age="+age+",StuName="+StuName+",email="+email;
}本回答被网友采纳
第2个回答  2012-12-10
你没有实现 toString() 方法
如果输出对象时,系统默认会调用类中的 toString 方法
在Student1类中添加如下方法:
@Override
public String toString() {
return String.format("No: %s\tName: %s\tAge: %d\tEmail:%s", StuNo, StuName, age, email);
}
第3个回答  2015-10-11
http://zhidao.baidu.com/question/506091401.html可以用迭代循环打印,学生信息是怎么打印的。代码粘出来看看
都已经采用了还提示高质量问题。并且点开后只看到个标题。
第4个回答  2012-12-10
import java.util.*;
public class Student1 {
private String StuNo;
private String StuName;
private int age;
private String email;
public Student1(String StuNo,String StuName,int age,String email){
this.StuNo=StuNo;
this.age=age;
this.StuName=StuName;
this.email=email;
}
public String getStuNo() {
return StuNo;
}
public void setStuNo(String stuNo) {
StuNo = stuNo;
}
public String getStuName() {
return StuName;
}
public void setStuName(String stuName) {
StuName = stuName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public static void main (String [] args){
Student1 s1=new Student1("1","l4",18,"qwe@qq");
Student1 s2=new Student1("2","w5",19,"asd@sina");
Student1 s3=new Student1("3","z6",20,"zxcv@shou");
Student1 s4=new Student1("4","t7",21,"hkl@163");
Set<Student1> set=new HashSet<Student1>();
set.add(s1);
set.add(s2);
set.add(s3);
set.add(s4);
Iterator<Student1> it=set.iterator();
while(it.hasNext()){
System.out.println(it.next().getAge());
}

}
}
错了点 改过来了
相似回答