HashMap

gq2112 2006-09-08 12:30:33
有如下一组数据:

John Doe 3434.34
Tom Smith 123.22
Jane Baker 1378.00
Todd Hall 99.22
Ralph Smith 19.08

1 . 按名排序 , 降序输出。
2.按姓排序 ,升序输出。
输出形式为 : XXXX:XXX


请不要说什么我给思路之类的废话 我要程序 用MAP 和SET 和LIST 做 谢谢 大家

...全文
324 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lipengxing521 2006-09-21
  • 打赏
  • 举报
回复
import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;

class Student implements Comparable<Student>{
String name=null;
String xing=null;
float sz;
public Student(String name,String xing,float sz) {

this.name=name;
this.xing=xing;
this.sz=sz;
}
public int compareTo(Student o) {// 1 . 按"名"降序,名相同按"姓"升序
int p=this.name.compareTo(o.name);
if(p>0)
return -1;
else if(p<0)
return 1;
else if(p==0){
int k=this.xing.compareTo(o.xing);
if(k>0)
return 1;
else if(k<0)
return -1;
else if(k==0)
return 0;
}
return -1;
}

public String toString() {
return "名:"+name+"\t姓:"+xing+"\t数字:"+sz;
}
}

public class PP {

/**
* John Doe 3434.34
Tom Smith 123.22
Jane Baker 1378.00
Todd Hall 99.22
Ralph Smith 19.08

1 . 按名排序 , 降序输出。
2.按姓排序 ,升序输出。
输出形式为 : XXXX:XXX
*/
static Comparator<Student> c1=new Comparator<Student>(){//1 . 按名排序
public int compare(Student o1, Student o2) {
int pk=o1.name.compareTo(o2.name);
if(pk>0)
return -1;
else if(pk<0)
return 1;
else
return 0;
}
};
static Comparator<Student> c2=new Comparator<Student>(){//2.按姓排序
public int compare(Student o1, Student o2) {
int pk=o1.xing.compareTo(o2.xing);
if(pk>0)
return 1;
else if(pk<0)
return -1;
else
return 0;
}
};

static TreeSet tianjia(TreeSet<Student> set){
Student s1=new Student("John","Doe",3434.34f);
Student s2=new Student("Tom","Smith",123.22f);
Student s3=new Student("Jabe","Baker",1378.00f);
Student s4=new Student("Todd","Hall",99.22f);
Student s5=new Student("Ralph","Smith",19.08f);
set.add(s1);
set.add(s2);
set.add(s3);
set.add(s4);
set.add(s5);
return set;

}
static void printlnSet(TreeSet<Student> set){
for(Student st:set){
System.out.println(st);
}

}
public static void main(String[] args) {
// TODO Auto-generated method stub

TreeSet<Student> set=null;
Scanner sc=new Scanner(System.in);
System.out.println("请选择排序方式:(1) 按'名'降序,名相同按'姓'升序(2) 按名排序 (3)按姓排序");
int sele=Integer.valueOf(sc.nextLine());
if(sele==1){
set=new TreeSet<Student>();
set=tianjia(set);
printlnSet(set);
}
else if(sele==2){
set=new TreeSet<Student>(c1);
set=tianjia(set);
printlnSet(set);
}
else if(sele==3){
set=new TreeSet<Student>(c2);
set=tianjia(set);
printlnSet(set);
}
else{
System.out.println("选择不正确....");
}
}
}
lipengxing521 2006-09-21
  • 打赏
  • 举报
回复
我这个程序是按"名"降序,"名"相同再按"姓"升序,不晓得是不是这个意思.


import java.util.TreeSet;

class Student implements Comparable<Student>{
String name=null;
String xing=null;
float sz;
public Student(String name,String xing,float sz) {

this.name=name;
this.xing=xing;
this.sz=sz;
}
public int compareTo(Student o) {
int p=this.name.compareTo(o.name);
if(p>0)
return -1;
else if(p<0)
return 1;
else if(p==0){
int k=this.xing.compareTo(o.xing);
if(k>0)
return 1;
else if(k<0)
return -1;
else if(k==0)
return 0;
}
return -1;
}

public String toString() {
return "名:"+name+"\t姓:"+xing+"\t数字:"+sz;
}
}

public class PP {
public static void main(String[] args) {
// TODO Auto-generated method stub
Student s1=new Student("John","Doe",3434.34f);
Student s2=new Student("Tom","Smith",123.22f);
Student s3=new Student("Jabe","Baker",1378.00f);
Student s4=new Student("Todd","Hall",99.22f);
Student s5=new Student("Ralph","Smith",19.08f);
TreeSet<Student> set=new TreeSet<Student>();
set.add(s1);
set.add(s2);
set.add(s3);
set.add(s4);
set.add(s5);
for(Student st:set){
System.out.println(st);
}
}

}
treeroot 2006-09-20
  • 打赏
  • 举报
回复
up
nisus_lee 2006-09-20
  • 打赏
  • 举报
回复
import java.util.*;

public class SortMap// interface SortedMap
{
public static void main(String[] args)
{
TreeMap map=new TreeMap();
map.put("John Doe","3434.34");
map.put("Tom Smith","123.22");
map.put("Jane Baker","1378.00");
map.put("Todd Hall","99.22");
map.put("Ralph Smith","19.08");
// map.subMap("John Doe","Todd Hall");
// map.comparator();
Object low=map.firstKey();
Object high=map.lastKey();
map.subMap(low,high);
String str= map.toString();
String s=str.replace(", ","\n").replace("{","").replace("}","");
System.out.println(s);

}

}
amingo 2006-09-09
  • 打赏
  • 举报
回复
帮顶
bobskay 2006-09-09
  • 打赏
  • 举报
回复
希望楼主能自己写出代码
gq2112 2006-09-09
  • 打赏
  • 举报
回复
崩溃了 呵呵 当时有点冲动了 大家不好意思啊
千里冰封820 2006-09-08
  • 打赏
  • 举报
回复
希望楼主能自己写出代码
terry_yip 2006-09-08
  • 打赏
  • 举报
回复
请参考:
http://community.csdn.net/Expert/topic/5006/5006120.xml?temp=.2733728

我也说句废话,要代码的提问方式,只能让你成为一名砌墙的泥水工,而不是一名建筑师。
sundeveloper 2006-09-08
  • 打赏
  • 举报
回复
UP..
zhangj0571 2006-09-08
  • 打赏
  • 举报
回复
说句废话,程序还是要靠自己写,多写才会提升水平

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧