java复习之hash表的实现

22 篇文章 0 订阅
21 篇文章 0 订阅

散列表的实现java版

package learn;

import java.util.Arrays;

public class HashTab {
    public static void main(String[] args) {
        HashT hashT = new HashT(8);
        hashT.add(new Emp(12,"张三"));
        hashT.add(new Emp(7,"李四"));
        hashT.add(new Emp(8,"王五"));
        hashT.add(new Emp(16,"王六"));
        hashT.list();
//        System.out.println(hashT);

    }
}
class Emp{
    public int id;
    public String name;
    public Emp next;

    public Emp(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Emp{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", next=" + next +
                '}';
    }
}
class LinklistDemo{
    private Emp head;

    public void add(Emp emp){
        if(head==null){
            head=emp;
        }else {
            Emp emp1=head;
            while (emp1.next!=null){

                emp1=emp1.next;
            }
            emp1.next=emp;
        }
    }
    public void list(){
        if(head==null){
            System.out.println("链表为空!");
            return;
        }else {
            Emp emp = head;
            while (emp.next!=null){
                System.out.println(emp);
                emp=emp.next;
            }
            System.out.println(emp);
        }


    }

    @Override
    public String toString() {
        return "LinklistDemo{" +
                "head=" + head +
                '}';
    }
}
class HashT{
    private int size;
    private LinklistDemo[] link;
    public HashT(int size) {
        this.size = size;
        link = new LinklistDemo[size];
        for(int i=0;i<size;i++){
            link[i]=new LinklistDemo();
        }
    }

    @Override
    public String toString() {
        return "HashT{" +
                "size=" + size +
                ", link=" + Arrays.toString(link) +
                '}';
    }

    public void add(Emp emp){
        int num=hashMethod(emp.id);
        link[num].add(emp);
    }
    public void list(){
        for(int i=0;i<size;i++){
            link[i].list();
        }
    }
    public int hashMethod(int id){
        return id%size;
    }



}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值