一、什么是哈希表:
简单来说,可以通过利用哈希函数实现键(key)与桶(数字列表)之间的映射关系。故哈希表是利用哈希函数组织数据的一种数据结构。
1.哈希集合:
如果是只存储了原始数据的集合,那么就是哈希集合。
2.哈希映射:
如果是存储了原始数据以及对应值的映射关系,那么就是哈希映射。
3.哈希冲突:
如果发生多个key映射一个value的情况,会发生哈希冲突。
a = 1987
c = a % 5
c
#c = 2
#如上述代码所示,通过取余这样的函数,实现了1987和2之间的哈希映射。1987这个key应该存储在2这个桶里
4.哈希函数的特点:
①一致性 :对于一个key,在最理想的状态下应该只对一个calue,否则会发生哈希冲突导致运行时间过长。②高效性:key查找value需要时间,发生哈希冲突的时候采用线性探测法查找value的时候,会从value列表的第一个值开始找,从而增加运行时间。所以应该通过采用不同的数据搜索方法或者一一对应的哈希映射来减少运算时间。
5.哈希冲突的解决办法:
①线性探测法:对于哈希集合以及一组对应的value集合,如果发生冲突,会自动向下查找value形成对应(时间长)。②链地址法:使用链表存储哈希冲突的key,不向下查找value形成映射,在value上再创建一个链表,从而实现映射。
二、Java语言基础以及类的定义:
1.Java语言基础:
Java作为一种直接面向对象的语言,对象通过调用彼此的方法来实现协同工作。类、对象、方法、实例变量的概念如下:①对象:指的是类的实例,具有诸多特征。②类:具有的特征。③方法:数据修改的行为:逻辑运算、数据修改的方法。④实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值所决定。
public class HelloWorld {
//第一个Java程序输出HelloWorld
public static void main(String[] args) { //public为访问符,static为关键字,void为返回类
System.out.println("HelloWorld"); //main为方法名,args为字符串数组
}
}
2.Java的基本语法:应注意以下几点①大小写敏感: Java大小写敏感,需要区分。②类名:对于所有类,类名的首字母应该大写。如果由若干个首字母组成,那么应该写成驼峰型变量。③方法名:所有的方法名应该
三、如何设计哈希表:
三、如何设计哈希映射: