`

一道别人的笔试题“排序”&“TreeMap”

阅读更多
题目:文件intel.txt,内容如下:

小王【空格】10000【回车】
小强【空格】12345【回车】
小张【空格】2342 【回车】
小强【空格】1030 【回车】
小周【空格】1020 【回车】

请编写一程序从test.txt中读取数据,并按数字大小排序后写入另一文件sun.txt(写入格式同上)

构建一个Class Person里面包含2个属性 name number,面向对象的概念
public class Person {
private String name;
private int number;
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public int getNumber() {
	return number;
}
public void setNumber(int number) {
	this.number = number;
}
}


还有就是有些建议使用TreeMap进行排序,但是对于number可能重复,TreeMap不能使用
TreeMap基于红黑树(Red-Black tree)的 NavigableMap 实现。该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。
注意,此实现不是同步的。如果多个线程同时访问一个映射,并且其中至少一个线程从结构上修改了该映射,则其必须 外部同步。(结构上的修改是指添加或删除一个或多个映射关系的操作;仅改变与现有键关联的值不是结构上的修改。)这一般是通过对自然封装该映射的对象执行同步操作来完成的。如果不存在这样的对象,则应该使用 Collections.synchronizedSortedMap 方法来“包装”该映射。最好在创建时完成这一操作,以防止对映射进行意外的不同步访问,如下所示:

   SortedMap m = Collections.synchronizedSortedMap(new TreeMap(...));
collection(由此类所有的“collection 视图方法”返回)的 iterator 方法返回的迭代器都是快速失败 的:在迭代器创建之后,如果从结构上对映射进行修改,除非通过迭代器自身的 remove 方法,否则在其他任何时间以任何方式进行修改都将导致迭代器抛出 ConcurrentModificationException。因此,对于并发的修改,迭代器很快就完全失败,而不会冒着在将来不确定的时间发生不确定行为的风险。

注意,迭代器的快速失败行为无法得到保证,一般来说,当存在不同步的并发修改时,不可能作出任何肯定的保证。快速失败迭代器尽最大努力抛出 ConcurrentModificationException。因此,编写依赖于此异常的程序的做法是错误的,正确做法是:迭代器的快速失败行为应该仅用于检测 bug。
分享到:
评论

相关推荐

    TreeMap按VALUE排序

    TreeMap按VALUE排序

    百度最全笔试题

    【数据结构与算法】:在Java笔试题中,常见数据结构如数组、链表、栈、队列、树、图等,以及排序(如冒泡排序、快速排序、归并排序)和查找(如二分查找、哈希查找)算法的实现和应用是重点考察内容。对于复杂度分析...

    List和Treemap排序实例及效率对比

    本资源提供了List对对象中的属性和TreeMap, String>对键值排序,并针对100w条数据排序,对比List和TreeMap, String>排序的效率。个人认为排序效率对比可以相信,但也可能存在不科学之处,还请高手给与指点,多多包涵...

    java笔试题加答案(单选,多选,判断,简答)

    Java笔试题是评估应聘者Java编程能力的重要环节,通常包括单选题、多选题、判断题和简答题。这些题目覆盖了Java语言的核心概念、类库、编程规范以及问题解决能力。以下是一些可能出现在Java笔试题中的关键知识点: ...

    java 中 TreeMap排序

    在Java编程语言中,`TreeMap`是一种基于红黑树数据结构实现的键值对容器,与`HashMap`不同,`TreeMap`自动按照键的自然顺序或者自定义的比较器进行排序。当我们需要存储的数据有特定的排序需求时,`TreeMap`便成为一...

    java 高级工程师一些笔试题

    Java作为一门广泛使用的编程语言,其高级工程师的笔试题涵盖了众多关键知识点,这些知识点是成为一名优秀的Java开发者必备的。以下是一些可能出现在Java高级工程师笔试题中的重要概念和主题: 1. **多线程与并发**...

    java面试笔试题(含答案)

    ### Java面试笔试题详解 #### 一、集合框架与线程安全性 - **线程安全类**:在Java集合框架中,存在一部分被设计成线程安全的类,这意味着它们能够在多线程环境下安全地使用,而不需要额外的同步措施。这类包括`...

    javamianshiti.rar_C 笔试题_java 试题_java笔试题_java面试_笔试

    【标题】"javamianshiti.rar_C 笔试题_java 试题_java笔试题_java面试_笔试" 提供了一个关于Java编程语言的面试和笔试准备资源的集合,其中可能涵盖了C语言的基础知识以及Java的核心概念。 【描述】"java面试笔试题...

    java笔试题(收集了各大公司的笔试题)

    Java笔试题是评估应聘者技术水平和解决问题能力的重要环节,涵盖了基础语法、面向对象、数据结构、算法、JVM原理、多线程、网络协议、数据库、框架应用等多个方面。这份"java笔试题(收集了各大公司的笔试题)"资源...

    2019武汉小米笔试题

    【标题】2019武汉小米笔试题:深入解析Java编程知识 【描述】这份资料主要涵盖了2019年武汉小米公司在招聘过程中使用的笔试题目,重点在于考察应聘者的Java编程能力。通过这些题目,我们可以了解到Java语言的核心...

    笔试题 java

    【标题】:“笔试题 java” Java是一门广泛应用于企业级应用开发、移动应用(如Android)、Web应用以及大数据处理的编程语言。对于求职者来说,掌握Java的基本概念、语法和常用框架是通过技术面试和笔试的关键。...

    华为笔试题,JAVA面试笔试题

    【标题】:“华为笔试题,JAVA面试笔试题” 在IT行业,尤其是JAVA开发领域,面试和笔试环节是评估候选人技术能力的重要方式。华为作为全球知名的科技企业,对JAVA程序员的技术要求自然也是高标准、严要求。这份...

    java笔试题大集合及答案(另附各大公司笔试题)

    Java笔试题大集合是针对Java开发者进行技术面试和笔试时的一种参考资源,涵盖了广泛的Java编程概念、设计模式、数据结构、算法以及Java相关框架的知识点。这份文档可能包含以下几大部分: 1. **基础语法**:Java的...

    恒生笔试题java

    【恒生电子笔试题】是针对Java编程语言的一系列面试及笔试题目,主要涉及的知识点广泛,涵盖了Java的基础语法、面向对象编程、数据结构与算法、多线程、集合框架、异常处理、IO流、网络编程、设计模式等多个方面。...

    个人整理亿迅笔试题

    【亿迅笔试题】主要考察了Java编程语言的基础知识,面向对象设计原则,以及接口和类的使用。以下是对这些知识点的详细解释: 1. **char变量与中文字符**: - Java中的`char`类型占用一个字节,即16位,但通常一个...

    天津智慧方舟科技有限公司Java笔试题

    【标题】:“天津智慧方舟科技有限公司Java笔试题”揭示了这是一份针对应聘者进行的Java编程能力的考核题目,通常包含多个关于Java语言、框架、设计模式以及相关技术的问题,旨在评估候选人的技术水平和解决问题的...

    恒生Java笔试题

    恒生Java笔试题通常会涵盖Java编程语言的基础知识、进阶特性、面向对象设计原则、数据结构与算法、多线程、网络编程、异常处理、集合框架、IO流、JVM内存模型以及Java相关的框架应用等多个方面。以下是对这些知识点...

    java笔试集合另附各大公司笔试题

    本资源包含的"java笔试集合另附各大公司笔试题"旨在帮助应聘者更好地准备这类考试,提升自己的竞争力。下面将对Java集合框架及常见的笔试题型进行详尽的阐述。 首先,Java集合框架是Java编程语言中非常重要的一部分...

    java笔试题集合及答案

    Java笔试题是评估应聘者Java编程能力的重要环节,它涵盖了基础语法、面向对象设计、数据结构与算法、多线程、网络编程、JVM原理等多个方面。以下是一些常见的Java笔试题及其相关知识点: 1. **Java基础语法**:包括...

    金山2010校园招聘技术类Java笔试题

    【标题】"金山2010校园招聘技术类Java笔试题"揭示了这是一份针对2010年金山公司校园招聘技术岗位的Java编程能力测试题目。金山是一家知名的中国软件公司,其招聘过程通常会涉及到对技术人才的深度评估,尤其是对于...

Global site tag (gtag.js) - Google Analytics