📄 dxbbiterator.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: DxBBIterator.java,v 1.5 2000/10/28 16:55:14 daniela Exp $package org.ozoneDB.DxLib;/** * * * @author <a href="http://www.softwarebuero.de/">SMB</a> * @version $Revision: 1.5 $Date: 2000/10/28 16:55:14 $ */public final class DxBBIterator extends DxAbstractIterator { final static long serialVersionUID = 1L; DxBBTree bbtree; DxBBnode node; /** */ public DxBBIterator( DxTreeCollection _coll ) { bbtree = _coll.internalTree(); reset(); } /** */ public Object object() { return node != null ? node.data : null; } /** */ public Object key() { return node != null ? node.key : null; } /** */ public Object next() { Object obj = object(); if (atFirstObject) { atFirstObject = false; } else { if (obj != null && !objectRemoved) { if (node.re != null) { node = leftMost( node.re ); } else { node = firstRightParent( node ); } obj = object(); } objectRemoved = false; } return obj; } /** */ public void reset() { node = leftMost( bbtree.root() ); atFirstObject = true; objectRemoved = false; } /** */ public Object removeObject() { Object obj = object(); if (obj != null && !objectRemoved) { DxBBnode delNode = node; if (node.re != null) { node = leftMost( node.re ); } else { node = firstRightParent( node ); } bbtree.removeForKey( delNode.key ); objectRemoved = true; } return obj; } /** */ private DxBBnode leftMost( DxBBnode node ) { if (node != null && node.li != null) { return leftMost( node.li ); } return node; } /** */ private DxBBnode firstRightParent( DxBBnode node ) { if (node == bbtree.quietRoot) { return null; } if (node.isRight) { return firstRightParent( node.pa ); } return node.pa; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -