有关hashmap的key

伟明 2011-10-22 08:56:13

package StartDiaguo;

import java.io.Serializable;
//import java.util.*;

public class Appointment implements Serializable {
private String clientName;

private String startTime;
private String endTime;
private String date;
private Appointment next;



public Appointment(){
clientName = null;
date = null;
startTime = null;
endTime = null;
next = null;

}
public Appointment(String name,String d, String s, String e){
clientName = name;
date = d;
startTime = s;
endTime = e;
next = null;

}

public Appointment getNext(){
return next;
}

public void setNext(Appointment ap){
next = ap;
}

public String getName(){
return clientName;
}

public void setName(String name){
clientName = name;
}

public String getTime(){
return startTime +"-"+ endTime;
}

public void setTime(String s, String e){
startTime = s;
endTime = e;
}
public String getStartTime(){
return startTime;
}
public void setStartTime(String s){
startTime = s;
}
public void setEndTime(String e){
endTime = e;
}
public String getEndTime(){
return endTime;
}
public String getDate(){
return date;
}
public void setDate(String d){
date = d;
}

public void setAppointment(String n, String d, String s, String e) {
clientName = n;
startTime = s;
endTime = e;
date = d;
}
}


private Map<String, Appointment> appBook; 来存一个Appointment
Appointment 是一个linkedlist的形式
我用hashmap来存这个自定linkedlist类,当我想改Appointment.next 的内容后 怎么返回第一个app
还是有什么办法更改hashmap的key
...全文
88 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
风尘中国 2011-10-23
  • 打赏
  • 举报
回复
这是我提供的 管理约会的一个解决方案,一组有序列的约会抽象为AppSeries,那里面提供了对约会事件的基本增加和删除操作
对于你关注的一次约会序列当中 找一次约会的下一次约会,可以通过查找对应的index然后index+1再通过AppSeries调用提供的API实现,下面的TestApp有演示


import java.io.Serializable;
//import java.util.*;

public class Appointment implements Serializable {
private String clientName;

private String startTime;
private String endTime;
private String date;
// private Appointment next;

@Override
public String toString() {
return "Appointment{" +
"clientName='" + clientName + '\'' +
", startTime='" + startTime + '\'' +
", endTime='" + endTime + '\'' +
", date='" + date + '\'' +
'}';
}

public Appointment(){
clientName = null;
date = null;
startTime = null;
endTime = null;
// next = null;

}
public Appointment(String name,String d, String s, String e){
clientName = name;
date = d;
startTime = s;
endTime = e;
// next = null;

}

public String getName(){
return clientName;
}

public void setName(String name){
clientName = name;
}

public String getTime(){
return startTime +"-"+ endTime;
}

public void setTime(String s, String e){
startTime = s;
endTime = e;
}
public String getStartTime(){
return startTime;
}
public void setStartTime(String s){
startTime = s;
}
public void setEndTime(String e){
endTime = e;
}
public String getEndTime(){
return endTime;
}
public String getDate(){
return date;
}
public void setDate(String d){
date = d;
}

public void setAppointment(String n, String d, String s, String e) {
clientName = n;
startTime = s;
endTime = e;
date = d;
}
}




import java.util.LinkedList;

public class AppSeries {
private String seriesName;

public String getSeriesName() {
return seriesName;
}

public void setSeriesName(String seriesName) {
this.seriesName = seriesName;
}

public LinkedList<Appointment> getAppList() {
return appList;
}

public void setAppList(LinkedList<Appointment> appList) {
this.appList = appList;
}

private LinkedList<Appointment> appList=new LinkedList<Appointment>();

public AppSeries(){}

public AppSeries(String seriesName){
this.seriesName=seriesName;
}

public void addApp(Appointment app){
appList.add(app);
}

public Appointment getFirstApp(){
return appList.getFirst();
}

public Appointment getLastApp(){
return appList.getLast();
}

/**
*
* @param app
* @return 返回值是基于1的,所以最后返回index+1
*/
public int getAppIndex(Appointment app){
int index=-1;
if(appList.contains(app)){
index=0;
for(Appointment a:appList){
if(a.equals(app)){
return index+1;
}
index++;
}
}

return index;
}

/**
*
* @param i i是基于1的,不是基于0开始的,所以会i--操作
* @return
*/
public Appointment getAppByIndex(int i){
i--;
if(i<appList.size())
return appList.get(i);
else
return null;
}

public void removeApp(Appointment app){
if(appList.contains(app)){
appList.remove(app);
}
}
}




public class TestApp {
public static void main(String[] args) {
Appointment app1=new Appointment("第一个约会","2011-10-20","10:00","11:00");

Appointment app2=new Appointment("第二个约会","2011-10-20","12:00","13:00");

Appointment app3=new Appointment("第三个约会","2011-10-20","15:00","16:00");

Appointment app4=new Appointment("第四个约会","2011-10-21","12:00","13:00");

AppSeries series=new AppSeries("第一个约会序列");

series.addApp(app1);
series.addApp(app2);
series.addApp(app3);
series.addApp(app4);

for(Appointment app:series.getAppList()){
System.out.println("info:"+app);
}

System.out.println("第一个约会序列 的第一次约会"+series.getFirstApp());

System.out.println("第一个约会序列 的第三次约会"+series.getAppByIndex(3));

int indexOfApp2=series.getAppIndex(app2);
System.out.println("app2所在的次序是"+indexOfApp2);

System.out.println("app2的下一次约会是"+series.getAppByIndex(indexOfApp2+1));

series.removeApp(app3);
System.out.println("删除第三个约会后");
for(Appointment app:series.getAppList()){
System.out.println("info:"+app);
}
}
}

孟祥月 2011-10-23
  • 打赏
  • 举报
回复
楼主问题表述不清 貌似这个应该发到j2se
伟明 2011-10-23
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 mengxiangyue 的回复:]

楼主问题表述不清 貌似这个应该发到j2se
[/Quote]
我可能按错了,我现在才发现

ioe_gaoyong 原来我的Appointment 我自己找到方法去解决了 还没试你得方法 找天试试 不过还是谢谢 你热心地回答
伟明 2011-10-22
  • 打赏
  • 举报
回复
appointment 类就是以linkedlist的形式 来存东西
伟明 2011-10-22
  • 打赏
  • 举报
回复
我是自定的linkedlist 怎么getfirst()????
飓风zj 2011-10-22
  • 打赏
  • 举报
回复
getFirst()应该有这个样的方法的吧
你试试在你的ide里
key值 当然删除原来的
在重新设置了
伟明 2011-10-22
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20110811/14/2de71a77-5696-4465-b661-73a9fffbf22a.html



先看此贴 不懂 我再来说
风尘中国 2011-10-22
  • 打赏
  • 举报
回复

说清楚,这么一句话让人怎么理解

[Quote=引用 8 楼 zhangxw205 的回复:]

我要修改一个repeat app(一个客户订了 多个app,这些app要成为一组)里面的 内容
[/Quote]
伟明 2011-10-22
  • 打赏
  • 举报
回复
我要修改一个repeat app(一个客户订了 多个app,这些app要成为一组)里面的 内容
风尘中国 2011-10-22
  • 打赏
  • 举报
回复
先不要扯什么代码,说清楚你想要实现什么样的功能
伟明 2011-10-22
  • 打赏
  • 举报
回复
我是用上写的这个Appointment 来存资料 我在另外一个class 建了以个hashmap叫
Map<String, Appointment> appBook =new Hashmap<String,Appoinment>();
Appointment类可以setNext ,这个功能是当一个客户要预订多个appointments。
如果一个客户预订一个app, app.getNext() = null 也就是他只订了一个。
问题就是当我想Edit 一个客户app(注意是next不等于null),我用setAppointment(n,d,s,e) 改是改了,但是我回不了第一个。
第一个 ---next---》 第二个---next---》第三个----next----》null
怎么回去第一个

风尘中国 2011-10-22
  • 打赏
  • 举报
回复
不太清楚你想要做什么,现在的问题也没有表达清楚,你再说一下吧
伟明 2011-10-22
  • 打赏
  • 举报
回复
有没有人帮帮忙啊

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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