+ -
当前位置:首页 → 问答吧 → linkedList的size问题,请各位高手指点!

linkedList的size问题,请各位高手指点!

时间:2010-09-25

来源:互联网

我做了一个简单反向ajax的聊天实例,下面是我的方法:
public class JavaChat {

LinkedList messages = new LinkedList();

public void addMessage(String text)
{
if(text != null && text.trim().length()>0){
messages.addFirst(new ChatMsg(text));

//最多保留10条记录
while(messages.size()>10)
{
messages.removeFirst();
}
} System.out.println(messages.size());
WebContext webcon = WebContextFactory.get();
// 获取当前页面的url
String currentPage = webcon.getCurrentPage();
//是用utilThis清除文本框的内容
Util utilThis = new Util(webcon.getScriptSession());
utilThis.setValue("txtchat", "");

//获取正在浏览当前页的所有浏览器会话
Collection sessions = webcon.getScriptSessionsByPage(currentPage);
Util utilAll = new Util(sessions);
//删除chatlog列表里的所有列表项
//utilAll.removeAllOptions("chatlog");
//使用messages集合里集合元素的text属性为chatlog添加列表项
utilAll.addOptions("chatlog", messages,"text");

}
关键是linkedList的问题,本来是满足10条信息后,自动删除第一条,linkedlist的条数总是得到的是1条,请各位高手帮忙解决一下,到底是怎么回事!谢了

作者: crystalcup   发布时间: 2010-09-25

JScript code
LinkedList messages = new LinkedList();

public void addMessage(String text)
{
    if(text != null && text.trim().length()>0){
        messages.addFirst(new ChatMsg(text));        
    }     
    //最多保留10条记录
    if(messages.size()>10)//if判断下就可以了
    {
        messages.removeFirst();
    }
    System.out.println(messages.size());
    WebContext webcon = WebContextFactory.get();
    // 获取当前页面的url
    String currentPage = webcon.getCurrentPage();
    //是用utilThis清除文本框的内容
    Util utilThis = new Util(webcon.getScriptSession());
    utilThis.setValue("txtchat", "");

    //获取正在浏览当前页的所有浏览器会话
    Collection sessions = webcon.getScriptSessionsByPage(currentPage);
    Util utilAll = new Util(sessions);
    //删除chatlog列表里的所有列表项
    //utilAll.removeAllOptions("chatlog");
    //使用messages集合里集合元素的text属性为chatlog添加列表项
    utilAll.addOptions("chatlog", messages, "text");
}

作者: IBM_hoojo   发布时间: 2010-09-25

引用 1 楼 ibm_hoojo 的回复:
JScript code
LinkedList messages = new LinkedList();

public void addMessage(String text)
{
if(text != null && text.trim().length()>0){
messages.addFirst(new ChatMsg(text)); ……
不行,messages的size还是总是一条。不累计

作者: crystalcup   发布时间: 2010-09-25

CSS code
LinkedList messages = new LinkedList();
放在session中保存,然后取出来再添加、删除,完了后保存session中即可
你的没有保存,没有调用就是一个新的LinkedList 对象,所以才是1的

作者: IBM_hoojo   发布时间: 2010-09-25