http://hi.baidu.com/zk_ajax/blog/item/8efd7fc77b5a5dddd10060f8.html
感觉毕业以来自己都比较浮躁,以前想研究Jive系统的,但后来在网上看到有人说过时了,近来没事,看了部分代码,感觉写的相当漂亮,先撇开设计模式不说,我今天分析一下lastComma它里面的链表的实现:
public class LinkedListNode {
public LinkedListNode previous;
public LinkedListNode next;
public Object object;
public LinkedListNode(Object object, LinkedListNode previous,
LinkedListNode next) {
this.previous = previous;
this.next = next;
this.object = object;
}
public void remove() {
previous.next = next;
next.previous = previous;
}
@Override
public String toString() {
return object.toString();
}
public LinkedListNode getPrevious() {
return previous;
}
public void setPrevious(LinkedListNode previous) {
this.previous = previous;
}
public LinkedListNode getNext() {
return next;
}
public void setNext(LinkedListNode next) {
this.next = next;
}
public Object getObject() {
return object;
}
public void setObject(Object object) {
this.object = object;
}
}
链表类:
public class LinkedList {
private LinkedListNode head = new LinkedListNode("head", null, null);
public LinkedList() {
head.previous = head.next = head;
}
public LinkedListNode getFirst() {
LinkedListNode node = head.next;
if (node == head) {
return null;
}
return node;
}
public LinkedListNode getLast() {
LinkedListNode node = head.previous;
if (node == head) {
return null;
}
return node;
}
public void addFirst(LinkedListNode node) {
node.next = head.next;
node.previous = head;
node.next.previous = node;
node.previous.next = node;
}
public void addFirst(Object object) {
LinkedListNode node = new LinkedListNode(object, head, head.next);
node.next.previous = node;
node.previous.next = node;
}
public void addLast(Object object) {
LinkedListNode node = new LinkedListNode(object, head.previous, head);
node.previous.next = node;
node.next.previous = node;
}
public void clear() {
LinkedListNode node = getLast();
//把head也释放一下,我感觉这个比较高明,我实现的时候肯定head就忘记
//释放了,造成内存泄露。
while (node != null) {
node.remove();
node = getLast();
}
head = head.next = head.previous;
}
public void add(Object object){
addLast(object);
}
public String toString() {
LinkedListNode node = head.next;
StringBuffer buffer = new StringBuffer();
buffer.append("[");
// 把head不打印出来
while (node != head) {
buffer.append(node.toString() + ",");
node = node.next;
}
// 这个是我自己加的,仿照List的toString,两边加上[],并且删除
// 最后一个,
int lastComma = -1;
if((lastComma = buffer.lastIndexOf(",")) != -1){
buffer.deleteCharAt(lastComma);
}
buffer.append("]");
return buffer.toString();
}
}
分享到:
相关推荐
首先,我们来了解一下Jive的基本概念。Jive基于Java技术构建,采用了服务导向架构(SOA),支持RESTful API,这使得它能够轻松地与其他系统集成。Jive的主要组件包括内容管理系统、论坛、博客、任务和项目管理工具,...
### Jive(Jdon)安装详细指导 #### 一、前言 Jive是一款知名的开源社区软件,被广泛应用于企业内部沟通平台以及外部客户互动平台。本文档将详细讲解如何在Linux环境下安装配置Jive,包括数据库设置、Tomcat服务器...
jive论坛源码,jive项目源码,jive源码,Jive是国外一个非常著名的BBS程序,完全开放源码.jive论坛源码,jive项目源码,jive源码,Jive是国外一个非常著名的BBS程序,完全开放源码.jive论坛源码,jive项目源码,jive源码,...
《Jive Java版源码深度解析与设计模式探讨》 Jive是一款著名的社交软件平台,其Java版本的源码对于开发者来说,是一份极其宝贵的参考资料。深入研究Jive的源码,不仅可以帮助我们理解大型社交系统的架构设计,也能...
jive forums 设计模式 Version: 3.2.9 Below is a list of known issues affecting this release of Jive Forums (3.2.9).
首先,让我们关注一下Jive的核心组件: 1. **skins**: 这个目录包含Jive的界面皮肤和样式。了解这部分源码可以帮助我们理解如何自定义Web应用程序的UI,包括布局、颜色方案和图标等。通过研究CSS、HTML和JavaScript...
《深入剖析Jive 2.5源代码:安装与研究指南》 Jive是一款功能强大的社交网络软件,它为企业提供了一个全面的协作平台,让用户能够进行沟通、分享知识和协同工作。在这里,我们重点关注的是Jive 2.5版本的源代码。源...
《Jive论坛开源源码深度解析》 Jive论坛,作为一个早期且经典的开源社区平台,对许多Java开发者来说,无疑是一份宝贵的参考资料。在Jive 1.3之后,其源码不再对外公开,但1.2版本的开源源码仍能为我们揭示社区软件...
Jive论坛的优点 是由于采用缓冲机制,可以承受巨大访问量,同时能保持快速反应,在国外站点采用很多。 主要功能如下: 快速的缓存功能,将经常访问的帖子保存在内存中,实现快速访问, 可通过Web管理界面动态...
在JavaEE的学习过程中,有两个著名的示例项目,即PetStore和Jive论坛,这两个项目都是JavaEE开发的经典案例,有助于初学者理解并掌握JavaEE的核心概念和技术。 PetStore项目: 1. **MVC设计模式**:PetStore项目...
《Jive Eclipse:深入探索企业协作与开发工具》 Jive Eclipse是一款专为开发者设计的集成开发环境(IDE),它将Jive的社交协作功能与Eclipse的强大开发工具集融为一体,旨在提升团队间的沟通效率和代码质量。在本文...
**Jive论坛**是一款强大的企业社交网络平台,尤其在国际上广泛应用,因其高效能和用户友好性而备受赞誉。它的核心优点在于其采用的缓冲机制,这种机制使得Jive论坛能够在面临大规模用户访问时仍能保持稳定且快速的...
《Jive 2.1.1:探索设计模式的精华》 Jive,作为一个历史悠久的论坛软件,以其独特的社区构建能力和交互...设计模式的学习不仅仅是为了理解Jive,更是为了提升我们解决复杂问题的能力,为未来的开发工作打下坚实基础。
系统设计 1 jive设计思路 2 jive的工作内幕 3 Jive源代码研究 4 Jive中的设计模式 5 jive学习笔记 <br> 设计模式 1 大道至简-Java之23种模式一点就通 2 设计模式...
《Jive源代码深度解析》 Jive源代码,作为一款知名的开源社交网络平台,其背后的编程艺术和设计理念,对于理解和构建大型企业级社交应用具有重要价值。本篇将深入探讨Jive源代码的核心概念、架构设计以及主要功能...
- **设计模式变通**:Jive在应用设计模式时并没有完全遵循《设计模式:可复用面向对象软件的基础》(Gang of Four, GOF)中的实现方式,而是根据实际需求进行了适当的调整。 - **面向接口编程**:这种模式不仅提高了...
《深入剖析Jive论坛原代码:JAVA设计模式的实践与理解》 Jive论坛是一款知名的社区软件,其原代码开放给开发者,为学习和研究JAVA设计模式提供了宝贵的资源。通过研究Jive论坛的源代码,我们可以深入了解JAVA在大型...
### jive安装实例详解 #### 环境配置与需求 根据给定的文件信息,本次jive安装实例将在以下环境中进行: - 操作系统:Windows 2000 Server - Java 开发工具包(JDK)版本:1.4.1 - 应用服务器:JBoss 4.0.6 - Jive...
开源程序Jive是Java开发领域中的一个重要组成部分,尤其对于初学者和希望提升Java技能的开发者而言,它是一个宝贵的资源。Jive不仅仅是一个简单的程序,而是一个功能强大的框架,旨在简化Java应用程序的开发过程,...