Java实例——为新员⼯分配部门
技术关键:
1、Switch多分⽀语句的使⽤,该语句只⽀持对常量的判断;
2、对字符串的哈希码进⾏判断,也就是把String类的hashCode()⽅法返回值作为Switch语法的表达式,case关键字之后跟随的是各种字符串常量的哈希码整数值。
知识点:
哈希码
在Java中,哈希码代表对象的特征。可以根据的⾃⼰的需求,采⽤不同的算法产⽣的⼀个Int型数字。
⼏个常⽤的哈希码的算法:
1、Object类的hashCode.返回对象的内存地址经过处理后的结构,由于每个对象的内存地址都不⼀样,所以哈希码也不⼀样。
2、String类的hashCode.根据String类包含的字符串的内容,根据⼀种特殊算法返回哈希码,只要字符
串所在的空间相同,返回的哈希码也相同。
3、Integer类,返回的哈希码就是Integer对象⾥所包含的那个整数的数值。
实现过程:
1package test;
2import java.util.Scanner;
3public class Example {
4public static void main(String[] args) {
5        Scanner scan = new Scanner(System.in);
6        System.out.println("请输⼊新员⼯的姓名:");
7        String name = Line();        // 接收员⼯名称
8        System.out.println("请输⼊新员⼯应聘的编程语⾔:");
9        String language = Line();  // 接收员⼯应聘的编程语⾔
10
11// 根据编程语⾔确定员⼯分配的部门
12switch (language.hashCode()) {
13case 3254818:                    // java的哈希码
14case 2301506:                    // Java的哈希码
15case 2269730:                    // JAVA的哈希码
16                System.out.println("员⼯"+name+"被分配到Java程序开发部门。");
17break;
18case 3104:                        // c#的哈希码
19case 2112:                        // C#的哈希码
20                System.out.println("员⼯"+name+"被分配到C#项⽬维护组。");
21break;
22case -709190099:                  // asp的哈希码
23case 955463181:                  // Asp的哈希码
24case 9745901:                    // ASP.NET的哈希码
25                System.out.println("员⼯"+name+"被分配到Asp程序测试部门。");
26break;
27default:
28                System.out.println("本公司不需要" + language + "语⾔的程序开发⼈员。");
29        }
30    }
31 }
依照书中所给代码敲⼊后,⼀开始我不能理解switch语句中case的值是哪⾥来的,百度后才明⽩,原来是先将各种语⾔罗列出不同的写法,⽐如java有JAVA、java、Java这三种写法,通过hashcode⽅法提前获取哈希码的值再注释掉,⽽书中并没有给出这⼀过程。注释掉的代码如下:
System.out.println("java".hashCode());
System.out.println("Java".hashCode());
System.out.println("JAVA".hashCode());switch case判断字符串
System.out.println("C#".hashCode());
System.out.println("c#".hashCode());
System.out.println("asp".hashCode());
System.out.println("Asp".hashCode());
System.out.println("ASP".hashCode());
通过运⾏,我们可以获取各种语⾔不同写法所对应的哈希码,并将其放到case中进⾏后续判断。
该实例中的扩展练习是为学⽣分配兴趣⼩组,我们可以依据前⾯为员⼯分配部门为例,先求出不同兴趣⼩组的哈希码,⽐如⾜球、⽥径、⽂学等等,然后放到Switch语句中进⾏匹配判断即可。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。