⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dxdiskhashnodeleaf.java

📁 用Java写的面相对象的数据库管理系统
💻 JAVA
字号:
// You can redistribute this software and/or modify it under the terms of// the Ozone Library License version 1 published by ozone-db.org.//// The original code and portions created by SMB are// Copyright (C) 1997-2000 by SMB GmbH. All rights reserved.//// $Id: DxDiskHashNodeLeaf.java,v 1.10 2000/11/09 10:43:06 daniela Exp $package org.ozoneDB.DxLib;import java.io.*;/** * Knoten als blatt des baumes. Enthaelt keine verzweigungen aber eventuell * mehrere key-data-paare. */public class DxDiskHashNodeLeaf extends DxDiskHashNode implements Externalizable {        final static long serialVersionUID = 1;        protected DxDiskHashMap grandParent;        protected DxKeyData element;            public DxDiskHashNodeLeaf( DxDiskHashMap _grandParent ) {        grandParent = _grandParent;    }            public void empty() {        element = null;    }             public DxKeyData element() {        return element;    }             public boolean addForKey( Object data, Object key ) {        //es ist noch kein element drin        if (element == null) {            element = grandParent.newKeyData();            element.set( key, data );            return true;        } else {            //es sind schon elemente da            DxKeyData elem = element;            while (elem != null) {                if (elem.key.equals( key )) {                    break;                }                 elem = elem.next;            }             //key ist noch nicht drin            if (elem == null) {                DxKeyData newElement = grandParent.newKeyData();                newElement.set( key, data );                newElement.next = element;                element = newElement;                return true;            } else {                //key ist schon da :(                return false;            }         }     }             public Object elementForKey( Object key, int hashCode ) {        DxKeyData elem = element;        while (elem != null) {            if (elem.key.equals( key )) {                return elem.data;            }             elem = elem.next;        }         return null;    }             public Object removeForKey( Object key ) {        DxKeyData elem = element;        while (elem != null) {            if (elem.key.equals( key )) {                break;            }             elem = elem.next;        }                 Object answer = null;        if (elem != null) {            answer = elem.data;            //daten vom ersten element der liste hier eintragen            elem.data = element.data;            elem.key = element.key;            //erstes element loeschen; evtl gibt es nur noch das eine            element = element.next;        }         return answer;    }             public void writeExternal( ObjectOutput out ) throws IOException {        byte c = 0;        for (DxKeyData elem = element; elem != null; elem = elem.next) {            c++;        }         out.writeByte( c );                DxKeyData elem = element;        while (elem != null) {            out.writeObject( elem.key );            out.writeObject( elem.data );            elem = elem.next;        }     }             public void readExternal( ObjectInput in ) throws IOException, ClassNotFoundException {        byte c = in.readByte();                element = grandParent.newKeyData();        element.set( in.readObject(), in.readObject() );                DxKeyData elem = element;        for (int i = 1; i < c; i++) {            elem.next = grandParent.newKeyData();            elem.next.set( in.readObject(), in.readObject() );            elem = elem.next;        }     } }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -