比较多个日期从中找出最早最晚时间,并统计出现次数


/**
* 比较多个日期从中找出最早最晚时间,并统计出现次数
* @param dateStrList
*/


    private static String showResult(List<String> dateStrList) {
        Map<String, Integer> dateMap = new TreeMap<String, Integer>();
        int i, listLen;
        listLen = dateStrList.size();
        for(i = 0; i < listLen; i++){
            String dateKey = dateStrList.get(i);
            if(dateMap.containsKey(dateKey)){
                int value = dateMap.get(dateKey) + 1;
                dateMap.put(dateKey, value);
            }else{
                dateMap.put(dateKey, 1);
            }
        }
        Set<String> keySet = dateMap.keySet();
        String []sorttedArray = new String[keySet.size()];
        Iterator<String> iter = keySet.iterator();
        int index = 0;
        while (iter.hasNext()) {
            String key = iter.next();
        //    System.out.println(key + ":" + dateMap.get(key));
            sorttedArray[index++] = key;
        }
        int sorttedArrayLen = sorttedArray.length;
        System.out.println("最小日期是:" + sorttedArray[0] + "," + " 次数为" + dateMap.get(sorttedArray[0]));
        System.out.println("最大日期是:" + sorttedArray[sorttedArrayLen - 1] + "," + " 次数为" + dateMap.get(sorttedArray[sorttedArrayLen - 1]));

        return sorttedArray[sorttedArrayLen - 1];
                
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
重要意义   一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据的存储结构是数据结构的实现形式,是其在计算机内的表示;此外讨论一个数据结构必须同时讨论在该类数据上执行的运算才有意义。   在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。许多时候,确定了数据结构后,算法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。   选择了数据结构,算法也随之确定,是数据而不是算法是系统构造的关键因素。这种洞见导致了许多种软件设计方法和程序设计语言的出现,面向对象的程序设计语言就是其中之一。 编辑本段研究内容   在计算机科学中,数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象(数据元素)以及它们之间的关系和运算等的学科,而且确保经过这些运算后所得到的新结构仍然是原来的结构类型。   “数据结构”作为一门独立的课程在国外是从1968年才开始设立的。 1968年美国唐·欧·克努特教授开创了数据结构的最初体系,他所著的《计算机程序设计技巧》第一卷《基本算法》是第一本较系统地阐述数据的逻辑结构和存储结构及其操作的著作。“数据结构”在计算机科学中是一门综合性的专业基础课。数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。数据结构这一门课的内容不仅是一般程序设计(特别是非数值性程序设计)的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序的重要基础。   计算机是一门研究用计算机进行信息表示和处理的科学。这里面涉及到两个问题:信息的表示,信息的处理 。   而信息的表示和组织又直接关系到处理信息的程序的效率。随着计算机的普及,信息量的增加,信息范围的拓宽,使许多系统程序和应用程序的规模很大,结构又相当复杂。因此,为了编写出一个“好”的程序,必须分析待处理的对象的特征及各对象之间存在的关系,这就是数据结构这门课所要研究的问题。众所周知,计算机的程序是对信息进行加工处理。在大多数情况下,这些信息并不是没有组织,信息(数据)之间往往具有重要的结构关系,这就是数据结构的内容。数据的结构,直接影响算法的选择和效率。   计算机解决一个具体问题时,大致需要经过下列几个步骤:首先要从具体问题中抽象出一个适当的数学模型,然后设计一个解此数学模型的算法(Algorithm),最后编出程序、进行测试、调整直至得到最终解答。寻求数学模型的实质是分析问题,从中操作的对象,并找出这些操作对象之间含有的关系,然后用数学的语言加以描述。计算机算法与数据的结构密切相关,算法无不依附于具体的数据结构,数据结构直接关系到算法的选择和效率。运算是由计算机来完成,这就要设计相应的插入、删除和修改的算法 。也就是说,数据结构还需要给出每种结构类型所定义的各种运算的算法。   数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并由计算机程序处理的符号的总称。   数据元素是数据的基本单位,在计算机程序中通常作为一个整体考虑。一个数据元素由若干个数据项组成。数据项是数据的不可分割的最小单位。有两类数据元素:一类是不可分割的原子型数据元素,如:整数"5",字符 "N" 等;另一类是由多个款项构成的数据元素,其中每个款项被称为一个数据项。例如描述一个学生的信息的数据元素可由下列6个数据项组成。其中的出生日期又可以由三个数据项:"年"、"月"和"日"组成,则称"出生日期"为组合项,而其它不可分割的数据项为原子项。   关键字指的是能识别一个或多个数据元素的数据项。若能起唯一识别作用,则称之为 "主" 关键字,否则称之为 "次" 关键字。   数据对象是性质相同的数据元素的集合,是数据的一个子集。数据对象可以是有限的,也可以是无限的。   数据处理是指对数据进行查找、插入、删除、合并、排序统计以及简单计算等的操作过程。在早期,计算机主要用于科学和工程计算,进入八十年代以后,计算机主要用于数据处理。据有关统计资料表明,现在计算机用于数据处理的时间比例达到80%以上,随着时间的推移和计算机应用的进一步普及,计算机用于数据处理的时间比例必将进一步增大。
论文:计算机网络安全漏洞论文 计算机网络安全漏洞及解决措施初探 摘 要 人们通过计算机网络享受着各种便利,随之而来的网络安全问题也让人无限担忧。由于 我国国内计算机主流操作平台系统的功能复杂,而没有开放源代码,不能实现安全的检 测验证。而目前所使用的计算机网络通信协议大多都由国外开发,在可靠性方向持有保 留态度。因此,在计算机网络安全方面的漏洞也是一个比较严重的现实问题。本文通过 分析计算机网络安全的现状,提出一些拙见。 1 计算机网络安全漏洞 1.1 成因 1.1.1 操作系统本身漏洞和链路的连接漏洞 计算机网络由于需要给用户提供各种便利,那么就需要它在操作系统上拥有一个统一 的用户交互平台,能够全方位多角度的支持各种所需功用。而计算机网络的功能越强大 ,就表明它交互平台的网就撒得更大,那么它存在的漏洞也就越多,所以会更有可能受 到攻击。一个平台的建立不可能是暂时性的,也不可能是永远都固定不变的,那么它在 这种长久的存在与优化升级的过程中就会遭受更多的暴露与攻击。在计算机的服务运行 过程中,网络互通的功能需要由链路连接来实现。那么有了连接,就仿佛给攻击搭了一 座桥。而这些攻击包括对链路连接本身的攻击、对物理层表述的攻击以及对互通协议的 攻击等等。 1.1.2 TCP/IP协议漏洞和安全策略方面的漏洞 应用协议可以高效支持网络通信顺畅,但是TCP/IP固有缺 陷决定了源地址无法得到相应控制机制的科学鉴别。一旦IP地址无从确认,黑客就可 以从中数据,以篡改原有的路由地址。在计算机系统中,响应端口开放支持了各项 服务正常运转,但是这种开放依然给各种网络的攻击制造了便利。或许有人说防火墙可 以阻止其的进攻,但是如今防火墙对于开放的流入数据攻击依然束手无策。 1.2 检测方法 (1)配置文件检测。一般来说,系统运行的不安全配置主要是由于配置文件的缺失或是 过于复杂,而关于配置文件漏洞的查找则需要读并解释来完成。当系统文件的配置影 响到系统的功能运行时,用户需要及时的找出这个错误并且纠正过来。由于某些错误配 置只能在遭受攻击后方能看到,由此对配置文件进行检测会有效地降低漏洞的风险。 (2)文件内容与保护机制检测。一般来说,特洛伊木马喜欢植入系统工具和命令文件, 特别是命令文件中的启动脚本文件。因此在对这些文件进行检测时,可以设置唯有访问 权限的用户才能启动或是修改。而对文件内容进行安全检测的第一步是检测访问控制设 置。然后由于访问控制机制的复杂性,导致这种检测的功效并不十分明显。 (3)错误修正检测。大多攻击会利用操作系统的这些错误来破解系统进入权限,所以需 要开发出补丁程序来修正这些错误。若是补丁程序没有得到及时的安装,那么这种错误 修正就可以利用检验程序来完成。对于系统的这种检测而言,既可以是自动的也可以是 手 动的。被动型通过版本号和校验等来检测补丁程序的安装与否,而主动型则是通过检 测来找出错误。 (4)差别检测。这是一种被动的检测方法,它需要有一个基准时间,但是在文件被改过 之后,它实际上是忽略了时间日期的,由此可能出现造假的情况。而且它并不能阻止 程序已经被更改的部分,只能检测其是否被更改。正是由于差别检测的这些特点,也就 需要进行经常性的检查。而文件的检测程度直接和基准的有效性挂钩。 1.3 扫描技术 (1)基于主机。安装一个服务或者代理于目标系统上,为了便于漏洞扫描系统的直接访 问。扫描系统(下转第143页)(上接第107页)对计算机进行全面扫描之后,可以对全盘系 统进行分析,找出更多系统漏洞。此种扫描主要是对系统设置、注册表以及应用软件等 的扫描,中心服务器可以接收这些反馈信息,利用控制平台来处理。在这种扫描技术中 ,需要有用户代理、中心服务器和漏洞的扫描控制平台来组成。控制平台可以接收用户 的扫描指令,中心服务器来响应这些指令,而用户代理来执行这些指令,三者相互合作 ,扫描出计算机网络安全漏洞。 (2)基于网络。这种基于网络的扫描技术主要是查找网络服务协议的漏洞,基于Inter net的远程检测,它以一个外部攻击者的角度来扫描不同端口以及服务架构。基于网络的 扫描技术需要通过分析比对扫描日志来得出是否被漏洞侵蚀的结论。在这种比对中,就 可以有效的发现和清除协议漏洞。而完整的网络漏洞扫描大体可以分 为三步走。首先是发现存在于主机或者网络中目标;其次进一步的搜索已发现的目标信 息,比如说操作系统的类型和服务软件的版本等。若是漏洞目标是网络,则可以跟踪网 络的路由设备等;最后是根据已得到的扫描信息来测评是否存有漏洞。 2 解决措施 2.1 利用防火墙 防火墙技术主要包括过滤技术、服务器代理技术和状态检测技术等。过滤技术是比较 早的防火墙技术,它实施网络保护是通过路由器来实现的,能够筛选地址和协议,但是 前面我们提到
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值