表驱动分为三种,分别是:直接索引、索引表、阶梯索引。一般直接索引使用比较广泛,也容易想到。今天在网上看到了一笔试题,统计一个字符串中第一次出现且频率最高的字符。看到这道题以后,我觉得使用表驱动能很快、很容易地解决问题,下面是我使用表驱动给出的解法。
public static char statMostRateChar(String str) {
if (str != null && !"".equals(str)) {
int charsStat[] = new int[128];
int charsFirstIdx[] = new int[128];
int strLen = str.length();
for (int ch = 0; ch < 128;ch++) {
charsFirstIdx[ch] = strLen;
}
// 統計字符出現的次數
for (int idx = 0; idx < strLen; idx++) {
charsStat[str.charAt(idx)]++;
// 记录字符第一次出现的位置
if (idx < charsFirstIdx[str.charAt(idx)]) {
charsFirstIdx[str.charAt(idx)] = idx;
}
}
int mostRateChar = 0;
for (int ch = 1; ch < 128; ch++) {
if (charsStat[ch] == 0) {
continue;
}
// 找频率出现最高的字符
if (charsStat[mostRateChar] < charsStat[ch]) {
mostRateChar = ch;
// 出现频率一样时,选择出现在前面的数
} else if (charsStat[mostRateChar] == charsStat[ch]&&
charsFirstIdx[mostRateChar] > charsFirstIdx[ch]) {
mostRateChar = ch;
}
}
return (char) mostRateChar;
} else {
return '\0';
}
}
这是我对表驱动的一点认识,我觉得选择表驱动,提高代码的执行效率以及可读性,但同时却牺牲了存储空间。如果在不浪费大量空间的前提下,表驱动的确是一个不错的选择。
分享到:
相关推荐
表驱动法分为直接访问,索引访问,阶梯访问三种方式,分别对应相应代码,代码里有详细注释
在探讨“项目驱动”教学法在Java课程群中的应用时,我们首先需要了解Java课程群的背景和重要性。Java是一种广泛应用于企业级应用开发、大数据处理、移动应用开发等领域的编程语言。在软件工程专业中,Java课程群通常...
在当代教育改革的背景下,针对职业教育特别是计算机编程教育存在的问题,项目任务驱动法被提出并应用于Java程序设计教学中。本文讨论了项目任务驱动法在Java程序设计教学中的应用和研究,揭示了其对于提升学生编程...
"单机版记忆游戏的设计与实现——Java语言任务驱动教学法应用案例" 本文介绍了使用Java语言设计和实现单机版记忆游戏的过程,并将其作为Java语言课程的任务驱动教学法的一个应用案例。文章首先介绍了Java语言的重要...
Java项目开发课程中项目驱动教学法的应用设计 本文探讨了项目驱动教学法在Java项目开发课程中的应用设计。项目驱动教学法的核心是项目,没有项目做支撑,项目驱动教学法只能沦为方法论。因此,项目的选择和实施是...
"基于任务驱动法的Java教学模式探讨"正是针对这一问题进行的研究。 任务驱动法是一种以解决实际问题为导向的教学方法,它强调通过完成具体任务来学习和掌握知识。在Java教学中,这种方法可以使学生在实践中学习编程...
项目驱动法在Java Web开发教学中的应用 在信息技术迅速发展的今天,Java Web开发作为软件开发领域的重要分支,对于培养具有实战能力的开发人才显得尤为重要。传统的教学模式往往以理论讲解为主,忽视了实践能力的...
多维任务驱动教学法在JAVA教学中的应用 本文探讨了多维任务驱动教学法在JAVA教学中的应用。JAVA程序设计是一门实践性很强的课程,需要学生掌握概念、动手编程和上机调试运行。传统的JAVA教学方法主要通过教师讲授,...
在编译原理中,表驱动LL(1)语法分析程序是一种用于解析源代码的有效方法。它的核心思想是通过构建预测分析表,根据当前输入符号和栈顶符号来决定下一步的解析动作。这个课程设计旨在让学生理解和实现这一解析技术,...
基于任务驱动法的Java教学模式探讨.pdf
在现代教育领域,任务驱动教学法作为一种以学生为中心、以任务为驱动的探究式教学方式,被广泛应用于各个学科的教学中,尤其是技术类学科,如Java编程教学。本文将详细探讨任务驱动教学法在Java编程教学中的应用,并...
"项目驱动教学法在《Java EE Web组件编程技术》课程中的应用" 本文主要介绍了项目驱动教学法在《Java EE Web组件编程技术》课程中的应用。项目驱动教学法是一种以项目和案例为核心的教学方法,教学内容以项目任务为...
【Java语言教学中的项目驱动教学法】 Java语言作为面向对象编程的重要语言,因其卓越的通用性、高效性、平台移植性和安全性,在多个领域得到广泛应用。然而,在传统的Java教学过程中,存在一些问题,如理论与实践...
任务驱动式教学法在 JAVA 程序设计教学中的应用 任务驱动式教学法是指教师在教学过程中,根据已学到的知识,结合学生的认知能力,通过示范、说明等方法,指导学生完成任务的教学方法。该教学法的中心思想是“驱动...
2 任务驱动法在“Java程序设计”中的应用2.1 课程内容重构为了实现有效的教学,首先需要对“Java程序设计”的课程内容进行重构。以“坦克大战”这一实训任务为例,这个任务涵盖了Java的基础语法、面向对象编程...
任务驱动教学法在《Java语言》教学中的设计与实践 任务驱动教学法是一种基于建构主义学习理论的教学方法,它将传统的教学理念转变为以解决问题、完成任务为主的多维、互动式的教学理念。该方法实施过程通常包括设计...
《“项目驱动”教学法在JAVA教学中的应用》 Java作为一种广泛应用、功能强大的网络编程语言,其教学目标不仅是让学生理解和掌握知识,更重要的是培养他们学以致用,将知识灵活运用到实际问题解决中。传统的教学模式...
【项目驱动教学法在Java课程设计中的应用】 项目驱动教学法是一种以实际项目为核心的教学模式,它强调在学习过程中,学生通过参与实际的项目开发,掌握并应用理论知识。在Java课程设计中,这种教学方法尤其重要,...
- 数据库表的命名策略可以通过`@Table(name = "table_name")`自定义,否则默认会使用驼峰命名法转换为下划线命名。 - 主键生成策略应根据实际需求选择,例如,`GenerationType.IDENTITY`适用于自动递增的主键,而`...