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

📄 famouspeople.java

📁 Java Crawler with domain knowledge path
💻 JAVA
字号:
package HtreeExa;import java.util.Properties;import jdbm.RecordManager;import jdbm.RecordManagerFactory;import jdbm.helper.Tuple;import jdbm.helper.TupleBrowser;import jdbm.helper.StringComparator;import jdbm.btree.BTree;/** * Famous People example. * <p> * Demonstrates the use of B+Tree data structure to manage a list of * people and their occupation.  The example covers insertion, * ordered traversal, reverse traversal and range lookup of records. * * @author <a href="mailto:boisvert@intalio.com">Alex Boisvert</a> * @version $Id: FamousPeople.java,v 1.6 2003/10/21 15:32:02 boisvert Exp $ */public class FamousPeople {    static String DATABASE = "people";    static String BTREE_NAME = "FamousPeople";    static String[] people =        { "Greenspan, Alan",          "Williams-Byrd, Julie",          "Picasso, Pablo",          "Stallman, Richard",          "Fort, Paul",          "S锟絥dergaard, Ole",          "Schwarzenegger, Arnold",          "Dulkinys, Susanna" };    static String[] occupations =        { "Federal Reserve Board Chairman",          "Engineer",          "Painter",          "Programmer",          "Poet",          "Typographer",          "Actor",          "Designer" };    static String PREFIX = "S";    /**     * Example main entrypoint.     */    public static void main( String[] args ) {        RecordManager recman;        long          recid;        Tuple         tuple = new Tuple();        TupleBrowser  browser;        BTree         tree;        Properties    props;        props = new Properties();        try {            // open database and setup an object cache            recman = RecordManagerFactory.createRecordManager( DATABASE, props );            // try to reload an existing B+Tree            recid = recman.getNamedObject( BTREE_NAME );            if ( recid != 0 ) {                tree = BTree.load( recman, recid );                System.out.println( "Reloaded existing BTree with " + tree.size()                                    + " famous people." );            } else {                // create a new B+Tree data structure and use a StringComparator                // to order the records based on people's name.                tree = BTree.createInstance( recman, new StringComparator() );                recman.setNamedObject( BTREE_NAME, tree.getRecid() );                System.out.println( "Created a new empty BTree" );            }            // insert people with their respective occupation            System.out.println();            for ( int i=0; i<people.length; i++ ) {                System.out.println( "Insert: " + people[i] );                tree.insert( people[ i ], occupations[ i ], false );            }            // make the data persistent in the database            recman.commit();            // show list of people with their occupation            System.out.println();            System.out.println( "Person                   Occupation       " );            System.out.println( "------------------       ------------------" );            // traverse people in order            browser = tree.browse();            while ( browser.getNext( tuple ) ) {                print( tuple );            }            // traverse people in reverse order            System.out.println();            System.out.println( "Reverse order:" );            browser = tree.browse( null ); // position browser at end of the list            while ( browser.getPrevious( tuple ) ) {                print( tuple );            }            // display people whose name start with PREFIX range            System.out.println();            System.out.println( "All people whose name start with '" + PREFIX + "':" );            browser = tree.browse( PREFIX );            while ( browser.getNext( tuple ) ) {                String key = (String) tuple.getKey();                if ( key.startsWith( PREFIX ) ) {                    print( tuple );                } else {                    break;                }            }        } catch ( Exception except ) {            except.printStackTrace();        }    }    /**     * Print a Tuple containing a ( Person, Occupation ) pair.     */    static void print( Tuple tuple ) {        String person = (String) tuple.getKey();        String occupation = (String) tuple.getValue();        System.out.println( pad( person, 25) + occupation );    }    /**     * Pad a string with spaces on the right.     *     * @param str String to add spaces     * @param width Width of string after padding     */    static String pad( String str, int width ) {        StringBuffer buf = new StringBuffer( str );        int space = width-buf.length();        while ( space-- > 0 ) {            buf.append( ' ' );        }        return buf.toString();    }}

⌨️ 快捷键说明

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