黑马程序员技术交流社区
标题:
TreeMap的二叉树,怎么按编号添加和有序打印
[打印本页]
作者:
黑马-小龙
时间:
2013-1-25 22:14
标题:
TreeMap的二叉树,怎么按编号添加和有序打印
本帖最后由 张向辉 于 2013-1-27 10:29 编辑
class Student {
String id;
String name;
public Student(String id, String name) {
super();
this.id = id;
this.name = name;
}
}
public class ThreadDemo3 {
/**
* @param args
*/
public static void main(String[] args) {
TreeMap tm = new TreeMap();
Student st1 = new Student("001", "Jack");
Student st2 = new Student("002", "Rose");
Student st3 = new Student("003", "Tom");
XXX.put(st1)//此处怎么将以上的三个对象穿进去
Set<Map.Entry> entryset = tm.entrySet();
Iterator it = entryset.iterator();
while (it.hasNext()) {
Map.Entry entry = (Entry) (it.next());
Object key = entry.getKey();
Object value = entry.getValue();
System.out.println(key + " " + value);
}
}
}
求大神指教啊,这么将对象以编号的形式传进去,并且打印的也是有顺序?
作者:
王少雷
时间:
2013-1-25 22:23
果断用泛型控制。。。
TreeMap<Integer,Strudent> ??? = new TreeMap<Integer,Student>();
作者:
梁俊
时间:
2013-1-25 22:42
不知道这样合不合你的意思
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
class Student {
String id;
String name;
public Student(String id, String name) {
super();
this.id = id;
this.name = name;
}
@Override
public String toString(){
return name;
}
}
public class ThreadDemo3 {
/**
* @param args
*/
public static void main(String[] args) {
TreeMap<String,Student> tm = new TreeMap<String,Student>();
Student st1 = new Student("001", "Jack");
Student st2 = new Student("002", "Rose");
Student st3 = new Student("003", "Tom");
tm.put(st1.id, st1);//把对象编号当作键传入,学生对象当作值传入
tm.put(st2.id, st2);
tm.put(st3.id, st3);
//此处怎么将以上的三个对象穿进去
Set<Map.Entry<String, Student>> entryset = tm.entrySet();
Iterator<Entry<String, Student>> it = entryset.iterator();
while (it.hasNext()) {
Map.Entry<String,Student> entry = (Entry<String,Student>) (it.next());
Object key = entry.getKey();
Object value = entry.getValue();
System.out.println(key + " " + value);//重写学生类toString方法
}
}
}
复制代码
输出结果是
001 Jack
002 Rose
003 Tom
作者:
黑马-小龙
时间:
2013-1-25 22:46
哇,谢谢哦,不过貌似不对哦,编译错误呢
作者:
黄锦成
时间:
2013-1-25 23:04
这个可以用数字或字母来当做key。再构建TreeMap时,传入一个比较器,是按照key排序的
作者:
胥文
时间:
2013-1-26 00:05
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
public class TreeMapDemo {
/**
* @param args
*/
public static void main(String[] args) {
TreeMap tm = new TreeMap();
tm.put("001", "jack");//API中的put方法添加的键值对,个人觉得没有必要new学生对象,如果你实在想那么做,就在学生对象中定义一个getId()
//getName()方法然后获取ID和名字以键值对的形式存入
tm.put("002", "rose");
tm.put("003", "tom");
Set<Map.Entry<String,String>> entrySet= tm.entrySet();
Iterator<Map.Entry<String,String>> it = entrySet.iterator();
while(it.hasNext())
{
Map.Entry<String,String> entry = it.next();
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key+value);
}
}
}
这应该是你想要的把
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2