`
java1573
  • 浏览: 123294 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JAVA集合入门问题(原创)

阅读更多

· 问题:
· 既然有了数组,为什么还要ArrayList?__________
· 答:因为数组大小本来不可变;如果要变化,则必须重新分配内存,太消耗资源。
· 数组只能同一种基本数据类型;或者同一个类的对象(排除Object)。
· ArrayList中有重复元素吗?______,因为_______。增加值的顺序是1,3,4,5,1,那么输出的的值顺序为(考虑重复值和值的排序):_______。
· 答:有。因为ArrayList也是在Array的基础之上开发的(或者说:封装了数组),由于数组可以保存重复元素的值,所以ArrayList也可以。输入的值顺序为1,3,4,5,1。道理相同。
· TreeSet中有重复元素吗?________,因为_______。增加值的顺序是1,3,4,5,1,那么输出的的值顺序为_______
· 答:无。因为:ArrayList叫做有序列表,有顺序就可以通过下标来标识,所以元素可以重复。Set叫做无序列表,只能通过值的本身来标识,所以值是不以重复的;由于无序,所以每次输出的结果不可预料。输出结果为:1,3,4,5(可能的顺序,关键是重复的1没有出现。在JDK5.0以后,1可以自动由int转化为Integer类型)。
· 当数据集经常在中间插入、删除时,用集合的哪种类型:_______,因为______。
· 答:LinkedList。因为:LinkedList叫做链表;链表的数据结构适合在元素增加或减少时,对整体的内存没有影响;只是影响两个相邻的元素。而ArryList是底层封装了Array,所以在元素变化时仍然要重新分配内存。
· 当数据集常在后面追加时,用_______,因为_____________。
· 答:用ArrayList。因为SUN针对这个问题做了比较好的封装。
· 单个循环输出,效率比较高的是________,因为___________。
· 答::用ArrayList,因为它是有序列表,是通过下标进行访问的,所以效率最高。
· Vector与ArrayList的区别是:________。
· 答:两者功能完全相同。但是Vector用于多线程,不会有线程安全问题。因为Vector用了Sychronized关键字。而ArrayList没有用,所以ArrayList线程不安全,Vector线程安全。但是Vector被称为“过时的”,是不是就不能用了呢。不是。称为过时的原因是因为ArrayList很容易就变成线程安全的(加一句代码即可),这样ArrayList即可以用于单线程环境,又可以很方便地在多线程环境中使用,所以相比之下Vector就过时了。
· Set中的元素都是不能重复的,那HashSet与TreeSet的区别?
答:假设输入值的顺序为:1,4,3,1,用HashSet输出的顺序为:1,4,3(可能);用TreeSet输出的顺序为:1,3,4(如Windows的文件夹,不能重复,且有顺序)。
· HashTable与HashMap的区别是:_______
答:Table就是表的意思(如学生表的学号列,特征是不能重复,而且不能为空。表是可以多个人访问的,所以线程是安全的)。HashMap的Key值是可以为空的,线程是不安全的。

 

分享到:
评论
3 楼 My_Choice 2008-07-10  
<div class='quote_title'>java1573 写道</div>
<div class='quote_div'>
<p>· 问题: <br/>
· 既然有了数组,为什么还要ArrayList?__________ <br/>
· 答:因为数组大小本来不可变;如果要变化,则必须重新分配内存,太消耗资源。 <br/>
· 数组只能同一种基本数据类型;或者同一个类的对象(排除Object)。 <br/>
· ArrayList中有重复元素吗?______,因为_______。增加值的顺序是1,3,4,5,1,那么输出的的值顺序为(考虑重复值和值的排序):_______。 <br/>
· 答:有。因为ArrayList也是在Array的基础之上开发的(或者说:封装了数组),由于数组可以保存重复元素的值,所以ArrayList也可以。输入的值顺序为1,3,4,5,1。道理相同。 <br/>
· TreeSet中有重复元素吗?________,因为_______。增加值的顺序是1,3,4,5,1,那么输出的的值顺序为_______ <br/>
· 答:无。因为:ArrayList叫做有序列表,有顺序就可以通过下标来标识,所以元素可以重复。Set叫做无序列表,只能通过值的本身来标识,所以值是不以重复的;由于无序,所以每次输出的结果不可预料。输出结果为:1,3,4,5(可能的顺序,关键是重复的1没有出现。在JDK5.0以后,1可以自动由int转化为Integer类型)。 <br/>
· 当数据集经常在中间插入、删除时,用集合的哪种类型:_______,因为______。 <br/>
· 答:LinkedList。因为:LinkedList叫做链表;链表的数据结构适合在元素增加或减少时,对整体的内存没有影响;只是影响两个相邻的元素。而ArryList是底层封装了Array,所以在元素变化时仍然要重新分配内存。 <br/>
· 当数据集常在后面追加时,用_______,因为_____________。 <br/>
· 答:用ArrayList。因为SUN针对这个问题做了比较好的封装。 <br/>
· 单个循环输出,效率比较高的是________,因为___________。 <br/>
· 答::用ArrayList,因为它是有序列表,是通过下标进行访问的,所以效率最高。 <br/>
· Vector与ArrayList的区别是:________。 <br/>
· 答:两者功能完全相同。但是Vector用于多线程,不会有线程安全问题。因为Vector用了Sychronized关键字。而ArrayList没有用,所以ArrayList线程不安全,Vector线程安全。但是Vector被称为“过时的”,是不是就不能用了呢。不是。称为过时的原因是因为ArrayList很容易就变成线程安全的(加一句代码即可),这样ArrayList即可以用于单线程环境,又可以很方便地在多线程环境中使用,所以相比之下Vector就过时了。 <br/>
· Set中的元素都是不能重复的,那HashSet与TreeSet的区别? <br/>
答:假设输入值的顺序为:1,4,3,1,用HashSet输出的顺序为:1,4,3(可能);用TreeSet输出的顺序为:1,3,4(如Windows的文件夹,不能重复,且有顺序)。 <br/>
· HashTable与HashMap的区别是:_______ <br/>
答:Table就是表的意思(如学生表的学号列,特征是不能重复,而且不能为空。表是可以多个人访问的,所以线程是安全的)。HashMap的Key值是可以为空的,线程是不安全的。</p>
<p> </p>
</div>
<p> </p>
2 楼 zouming_3 2008-06-13  
呵呵
真的不错哦
1 楼 kanokano 2007-08-15  
谢谢!!
确实涨了不少知识!!

相关推荐

    《Java编程基础》课后习题答案(原创)

    Java通过异常类来表示这些问题,并提供了try-catch-finally结构来捕获和处理异常。 - **自定义异常**:当需要表示特定类型的错误时,可以创建新的异常类继承自已有的异常类。 4. **第六章:集合框架** - **集合与...

    java入门精通程序

    "Java入门精通程序"这个资源集合,旨在为初学者提供丰富的学习材料,帮助他们掌握Java编程的基础和进阶技巧。 首先,从标题我们可以推断,这份资源涵盖了从基础到精通的Java编程知识。对于初学者来说,学习Java首先...

    Java经典入门教程pdf完整版

    Java经典入门教程pdf完整版Java私塾跟我学系列JAⅥ篇网址:htp:/www.lavass.Cn电话:010-86835215 3;Java是一种软件运行平台 3.1:什么是软件的运行平台 如同我们需要阳光、空气、水和食物才能正常存活一样,软件最终要...

    Java版本的数据结构和算法(Linux社区版)绝对原创

    这个“Java版本的数据结构和算法(Linux社区版)”压缩包显然是一个专注于Java语言的数据结构与算法的学习资源,特别强调了其原创性,暗示内容可能具有独特性和深度。 数据结构主要包括数组、链表、栈、队列、树、...

    新入门 Java 游戏编程教程系列 (6).zip

    这个“新入门 Java 游戏编程教程系列 (6)”的压缩包资源,旨在帮助用户深入理解如何利用Java语言开发游戏,提供了一系列的学习材料。下面将详细介绍这个教程可能涵盖的一些关键知识点: 1. **Java基础知识**:在...

    java8集合源码分析-javaLearner:java学习者

    【Java入门 -&gt; 进大厂笔记:open_book::ledger:】未来的你一定会感谢今天学习的自己! 本项目主打Java基础、算法、框架实战、源码、中间件、大数据、面试等知识积累和经验总结。文章共300多篇, 大部分为原创, 部分翻译...

    零基础学Java教程PPT+视频+源代码

    【零基础学Java教程PPT+视频+源代码】是一个全面的Java学习资源包,适合初学者入门。这个教程集合了多种学习材料,包括PPT演示文稿、视频讲解以及配套的源代码,旨在帮助学习者从零开始掌握Java编程语言。 首先,让...

    原创编程学习路线,包括全面的知识点、免费资源、面试题、学习建议、项目,适用于所有学习编程、求职的同学 已完成 Java、前端

    本资源包,"code-roadmap-main",提供了一条原创的编程学习路径,覆盖了Java和前端开发的主要知识点,旨在帮助你高效地掌握编程技能,并在求职过程中脱颖而出。 首先,我们来详细探讨Java编程的基础部分。Java是一...

    中子原创电脑课堂文集(CHM)

    《中子原创电脑课堂文集》是一部集合了中子教授在中文之家改版后众多电脑教育文章的CHM格式文档。CHM,全称为Compiled HTML Help,是微软开发的一种帮助文件格式,它将HTML页面打包成单一文件,方便阅读和携带。这个...

    浪曦][原创]Junit.3.8.详解续一.rar

    Junit是一个开源的Java测试框架,由Ernst Berg和Kent Beck创建,它极大地简化了Java程序的单元测试。Junit 3.8是其早期的一个稳定版本,虽然现在已经有了更先进的Junit 5,但Junit 3.8仍然是许多开发者入门测试的...

    全套软件开发文档

    1. **Java编程基础**:文档可能涵盖Java语法、面向对象编程概念、异常处理、集合框架等内容,这些都是Java开发的基础。 2. **进阶Java技术**:可能包含多线程、网络编程、I/O操作、反射机制、JVM内部工作原理等高级...

    原创谈谈怎么最快学好android(个人看法)

    因此,建议初学者可以从学习Java的核心概念开始,比如面向对象编程、集合框架、异常处理、泛型、多线程等。 #### 深入理解Android架构 在掌握了Java语言的基础之上,接下来需要对Android系统有一个全面的认识。这...

    [原创]Apache_Pig的一些基础概念及用法总结

    本文旨在深入探讨Apache Pig的一些基本概念和用法,特别关注于新手入门时可能会遇到的概念混淆和实践难点。 #### 二、关键概念解析 ##### 1. 关系(Relation) 在Pig中,**关系**是最基本的数据结构,可以类比为...

    w3school教程 离线pdf 飞龙整理 20150123

    《w3school教程 离线pdf 飞龙整理 20150123》这个资源集合是IT学习者的一份宝贵财富,它涵盖了广泛的Web开发领域,包括前端、后端以及移动端的技术。这里我们将深入探讨其中涉及的一些核心知识点。 1. **HTML与CSS*...

    hibernate 超级经典笔记

    《Hibernate超级经典笔记》是针对Java开发者的一份深入学习Hibernate的宝贵资料,它结合了培训机构的专业教学经验,权威且原创,旨在帮助初学者快速掌握Hibernate的核心概念和技术。 Hibernate是一款流行的开源对象...

    springmybatis

    (读者注:其实这个应该叫做很基础的入门一下下,如果你看过Hibernate了那这个就非常的简单) (再加一条,其实大家可以看官方的教程更好些:http://mybatis.github.io/mybatis-3/,而且如果英文不是很好的那就看...

    Early bird 资源包

    由于被打上了“转载”的标签,我们可以推断这些资源可能不是原创,而是对其他来源的集合或整理。 在"Earlybird-master"这个压缩包中,我们可以期待找到一系列与IT发展前沿相关的文件和目录。通常,这样的项目会包含...

    w3school教程 离线版PDF 飞龙整理 20141103

    《w3school教程 离线版PDF 飞龙整理 20141103》这个压缩包集合了多个IT领域的基础教程,由飞龙精心整理,旨在为学习者提供一个全面且便于离线查阅的学习资源。其中包含了各种编程语言、框架和Web开发技术,覆盖了从...

    erp后台初版系统.zip

    从最根本上来讲,Spring Boot 就是一些库的集合,它能够被任意项目的构建系统所使用。它使用 “习惯优于配置” (项目中存在大量的配置,此外还内置一个习惯性的配置)的理念让你的项目快速运行起来。用大佬的话来...

    安卓日记本源代码

    【安卓日记本源代码】是一个面向女性用户的日记应用的源代码集合,旨在提供学习和参考。这个项目作为初学者入门的教程资源,可以帮助开发者了解如何在Android平台上开发一个功能完备的日记应用程序。源代码的原创性...

Global site tag (gtag.js) - Google Analytics