精华内容
下载资源
问答
  • java源码包---java 源码 大量 实例

    千次下载 热门讨论 2013-04-18 23:15:26
     Java实现的FTP连接与数据浏览程序,实现实例化可操作窗口。  部分源代码摘录:  ftpClient = new FtpClient(); //实例化FtpClient对象  String serverAddr=jtfServer.getText(); //得到服务器地址  ...
  • java源码包2

    千次下载 热门讨论 2013-04-20 11:28:17
     Java实现的FTP连接与数据浏览程序,实现实例化可操作窗口。  部分源代码摘录:  ftpClient = new FtpClient(); //实例化FtpClient对象  String serverAddr=jtfServer.getText(); //得到服务器...
  • java源码包3

    千次下载 热门讨论 2013-04-20 11:30:13
     Java实现的FTP连接与数据浏览程序,实现实例化可操作窗口。  部分源代码摘录:  ftpClient = new FtpClient(); //实例化FtpClient对象  String serverAddr=jtfServer.getText(); //得到服务器...
  • java源码包4

    千次下载 热门讨论 2013-04-20 11:31:44
     Java实现的FTP连接与数据浏览程序,实现实例化可操作窗口。  部分源代码摘录:  ftpClient = new FtpClient(); //实例化FtpClient对象  String serverAddr=jtfServer.getText(); //得到服务器...
  • Java开发技术大全(500个源代码).

    热门讨论 2012-12-02 19:55:48
    getClassName.java 利用反射机制获取类的名字 invokeConstructor.java 利用反射机制调用构造器 invokeMethod.java 利用反射机制调用成员方法 listConstructors.java 利用反射机制获取构造器列表 listFields....
  • 11.1 插曲:类组成部分的名字 291 11.2 类中修饰符 292 11.2.1 无修饰符类 292 11.2.2 类可见性 293 11.2.3 final——让类不可被继承 295 11.2.4 理解final关键字 296 11.2.5 总结:类修饰符 297 ...
  • JAVA_Thinking in Java

    2011-12-02 17:58:15
    2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 14. 致谢 第1章 对象入门 1.1 抽象进步 1.2 对象接口 1.3 ...
  • 但通常情况下,由于Java Bean是被容器所创建(如Tomcat),所以Java Bean应具有一个无参构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean持久性。Java Bean实际上相当于微软COM模型中本地...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
    百度云盘分享 ... Java实现的FTP连接与数据浏览程序,实现实例化可操作窗口。  部分源代码摘录:  ftpClient = new FtpClient(); //实例化FtpClient对象  String serverAddr=jtfServer.getText();...
  • 11.1 插曲:类组成部分的名字 291 11.2 类中修饰符 292 11.2.1 无修饰符类 292 11.2.2 类可见性 293 11.2.3 final——让类不可被继承 295 11.2.4 理解final关键字 296 11.2.5 总结:类修饰符 297 ...
  • 11.1 插曲:类组成部分的名字 291 11.2 类中修饰符 292 11.2.1 无修饰符类 292 11.2.2 类可见性 293 11.2.3 final——让类不可被继承 295 11.2.4 理解final关键字 296 11.2.5 总结:类修饰符 297 ...
  • Java实现的FTP连接与数据浏览程序 1个目标文件 摘要:Java源码,网络相关,FTP Java实现的FTP连接与数据浏览程序,实现实例化可操作窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 ...
  • Java实现的FTP连接与数据浏览程序 1个目标文件 摘要:Java源码,网络相关,FTP Java实现的FTP连接与数据浏览程序,实现实例化可操作窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 ...
  • Java实现的FTP连接与数据浏览程序 1个目标文件 摘要:Java源码,网络相关,FTP Java实现的FTP连接与数据浏览程序,实现实例化可操作窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 ...
  • java 编程入门思考

    2012-03-30 17:50:08
    2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 14. 致谢 第1章 对象入门 1.1 抽象进步 1.2 对象接口 1.3 ...
  • java 面试题 总结

    2009-09-16 08:45:34
    但通常情况下,由于Java Bean是被容器所创建(如Tomcat),所以Java Bean应具有一个无参构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean持久性。Java Bean实际上相当于微软COM模型中本地...
  • Java初学者入门教学

    2012-03-14 21:17:15
    2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 14. 致谢 第1章 对象入门 1.1 抽象进步 1.2 对象接口 1.3 ...
  • 2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 14. 致谢 第1章 对象入门 1.1 抽象进步 1.2 对象接口 1.3 ...
  • Thinking.In.Java

    2012-03-21 22:35:53
    一般情况下,我们需要有意忽略一个对象准确类型,让Java的动态绑定机制(多形性)为那一类型实现正确行为。但在某些场合下,对于只有一个基础句柄对象,我们仍然特别有必要了解它准确类型是什么。拥有这个...
  • java联想(中文)

    2008-12-29 21:07:11
    2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 14. 致谢 第1章 对象入门 1.1 抽象进步 1.2 对象接口 1.3 ...
  • 2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 14. 致谢 第1章 对象入门 1.1 抽象进步 1.2 对象接口 1.3 实现方案...
  • 2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 14. 致谢 第1章 对象入门 1.1 抽象进步 1.2 对象接口 1.3 ...
  • 2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 14. 致谢 第1章 对象入门 1.1 抽象进步 1.2 ...
  • 有一个公司,当有新员工来报道时,要求将该员工信息加入 (id,性别,年龄,名字,住址..),当输入该员工id时,要求查找到该员工 所有信息. 要求: 不使用数据库,,速度越快越好=>哈希表(散列) 添加时,保证按照id从...

    哈希(散列)表

    散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。
    在这里插入图片描述
    哈希表的结构图如下:
    在这里插入图片描述

    实例需求:
    有一个公司,当有新的员工来报道时,要求将该员工的信息加入(id,姓名…),当输入该员工的id时,要求查找到该员工的 所有信息.
    要求:
    1、不使用数据库,速度越快越好=>哈希表(散列)
    2、添加时,保证按照id从低到高插入
    3、使用链表来实现哈希表, 该链表不带表头[即: 链表的第一个结点就存放雇员信息]

    思路分析:
    在这里插入图片描述

    代码实现:

    package com.datastructures.hashtab;
    
    import java.util.Hashtable;
    import java.util.Scanner;
    
    public class HashTabDemo {
        public static void main(String[] args) {
            HashTab hashTab = new HashTab(7);
            String key = "";
            Scanner scanner = new Scanner(System.in);
            while (true) {
                System.out.println("add:添加员工");
                System.out.println("list:显示员工信息");
                System.out.println("find:查找");
                System.out.println("del:删除");
                System.out.println("exit:退出");
                key = scanner.next();
                switch (key) {
                    case "add":
                        System.out.println("请输入id:");
                        int id = scanner.nextInt();
                        System.out.println("请输入姓名:");
                        String name = scanner.next();
                        Emp emp = new Emp(id, name);
                        hashTab.add(emp);
                        break;
                    case "list":
                        hashTab.list();
                        break;
                    case "find":
                        System.out.println("请输入要查找的员工的id:");
                        id = scanner.nextInt();
                        hashTab.findEmpById(id);
                        break;
                    case "del":
                        System.out.println("请输入要删除的员工的id:");
                        id = scanner.nextInt();
                        hashTab.delEmp(id);
                        break;
                    case "exit":
                        scanner.close();
                        System.exit(0);
                        break;
                    default:
                        break;
                }
            }
        }
    
    }
    
    //创建哈希表 管理多条链表
    class HashTab {
        private EmpLinkedList[] empLinkedListArray;
        private int size;
    
        public HashTab(int size) {
            this.size = size;
            empLinkedListArray = new EmpLinkedList[size];
            //注意:一定要初始化数组中的每一条链表
            for (int i = 0; i < size; i++) {
                empLinkedListArray[i] = new EmpLinkedList();
            }
        }
    
        //添加员工
        public void add(Emp emp) {
            // 根据员工的id来决定添加到哪条链表
            int empLinkedListNo = hashFun(emp.id);
            empLinkedListArray[empLinkedListNo].add(emp);
        }
    
        //编写散列函数 取模法
        public int hashFun(int id) {
            return id % size;
        }
    
        //遍历hashtab
        public void list() {
            for (int i = 0; i < size; i++) {
                empLinkedListArray[i].list(i);
            }
        }
    
        //根据输入的id,查找员工
        public void findEmpById(int id) {
            //使用散列函数确定到哪条链表查找
            int empLinkedListNO = hashFun(id);
            Emp emp = empLinkedListArray[empLinkedListNO].findEmpById(id);
            if (emp != null) {//找到
                System.out.printf("在第%d条链表中找到 雇员 id = %d", (empLinkedListNO + 1), id);
            } else {
                System.out.println("没有找到该员工");
            }
        }
        //根据输入的id,删除员工
        public void delEmp(int id){
            int i=hashFun(id);
            empLinkedListArray[i].delEmp(id);
            //System.out.println("已删除该员工信息");
        }
    }
    
    
    //员工信息
    class Emp {
        public int id;
        public String name;
        public Emp next;
    
        public Emp(int id, String name) {
            this.id = id;
            this.name = name;
        }
    }
    
    //链表
    class EmpLinkedList {
        private Emp head;
    
        //添加员工
        public void add(Emp emp) {
            //如果添加的是第一个员工
            if (head == null) {
                head = emp;
                return;
            }
            //如果不是第一个员工 则设辅助指针 定位到最后再添加
            Emp temp = head;
            while (true) {
                if (temp.next == null) {
                    break;
                }
                temp = temp.next;
            }//已找到链表尾
            temp.next = emp;
        }
    
        //遍历链表信息
        public void list(int no) {
            if (head == null) {
                System.out.println("第" + (no + 1) + "链表为空");
                return;
            }
            System.out.println("第" + (no + 1) + "链表的信息为:");
            Emp temp = head;
            while (true) {
                System.out.printf("=> id=%d name=%s", temp.id, temp.name);
                if (temp.next == null) {
                    break;
                }
                temp = temp.next;
            }
            System.out.println();
        }
    
        //查找
        public Emp findEmpById(int id) {
            if (head == null) {
                // System.out.println("链表为空");
                return null;
            }
            Emp temp = head;
            while (true) {
                if (temp.id == id) {
                    break;
                }
                if (temp.next == null) {
                    temp = null;//因为要返回temp 所以没找到就把temp置为空
                    break;
                }
                temp = temp.next;
            }
            return temp;
        }
    
        //删除
        public void delEmp(int id) {
            if (head == null) {
                System.out.println("链表为空");
                return;
            }
            Emp temp=head;
            while (true){
                if (head.id==id){
                    head=head.next;
                    return;
                }
                if (temp.next==null){//链表尾
                    break;
                }
                if (temp.next.id==id){
                    temp.next=temp.next.next;
                }else {
                    System.out.println("没找到要删除的员工");
                }
                temp=temp.next;
            }
        }
    
    }
    
    展开全文
  • 2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 14. 致谢 第1章 对象入门 1.1 抽象进步 1.2 对象接口 1.3 ...
  • 以后再换个其他数据库操作实现只需要加一个类implements这个接口即可,而不需要去查找现在的实现里有哪些方法。 <pre name="code" class="java">public interface GenericDAO<t, id="" extends="" ...
  • jdbc基础和参考

    2014-01-08 13:04:17
    JDBC连接数据库的步骤: 1.注册驱动(加载驱动): 注册的方式: 1.使用类加载器(使用反射的方式) Class.forName(driverName); 2.实例化Driver Driver driver = new oracle.jdbc.driver.OracleDriver(); ...
  • 新版Android开发教程.rar

    千次下载 热门讨论 2010-12-14 15:49:11
    程序可以采用 JAVA 开发,但是因为它虚拟机 (Virtual Machine) Dalvik ,是将 JAVA bytecode 转成 自 己格式,回避掉需要付给 SUN 有关 JAVA 授权费用。 对手机制造者影响 � Android 是款开源移动计算...

空空如也

空空如也

1 2 3
收藏数 49
精华内容 19
关键字:

java实现数据库的按名字查找

java 订阅