数组可以放对象,那还要容器干吗? 容器又多又烦,感觉SUN公司有点象在卖弄。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的问题俺没考虑过,不过问了下专家人家这么说的:数组与容器的区别体现在三个方面:效率,类型识别以及可以持有基本类型primitives。1.数组只能保存特定类型。数组可以保存基本类型,容器则不能。创建一个数组时可让它容纳一种特定的类型。这意味着可进行编译时间的类型检查防范自己设置了错误的类型或者错误地提取了一种类型,而不是运行时的Exception。容器不以具体的类型来处理对象,它们将所有对象都按Object类型处理。Java对数组和容器都做边界检查;如果过了界,它就会给一个RuntimeException。2.数组是一种高效的存储和随机访问对象引用序列的方式,但是当创建一个数组对象(注意和对象数组的区别)后,数组的大小也就固定了,当数组空间不足的时候就再创建一个新的数组,把旧的数组中所有的引用复制到新的数组中。(数组是一种内存结构,而容器是一种数据结构)[知道数组的长度,而且以后也不会再增加,那肯定就使用数组了;如果数组的长度不定或者说是长度会增加,为了方便起见使用容器]3.容器类只能保存对象的引用。而数组既可以创建为直接保存基本类型,也可以保存对象的引用。在容器中可以使用包装类,如Integer、Double等来实现保存基本数据类型值。一般情况下,考虑到效率与类型检查,应该尽可能考虑使用数组。如果要解决一般化的问题,数组可能会受到一些限制,这时可以使用Java提供的容器类 数组能采用 Hash 算法查找么?数组的长度是固定的,不能像链表那样扩充! 数组很脆的,编程的时候都是要尽量避免数组的,正好和LZ说的相反,SUN在设计java的时候完全可以取消数组,而sun的集合框架毫无疑问是最出色的 像C++,都是不建议使用数组,而要使用vector等容器的。 初学者? 刚从C转JAVA的? 数组算什么?ARRAY?数组Y的,就是sun为了迎合这些所谓的C++,C程序员,而遗留下来的早应该被剔除的东西。这里被剔除的还包括基本数据类型。 你错了 容器的作用还是很大的比如说List 它存放的元素必须是顺序的 可以重复的set存放的是乱序的 并且元素值是不可以重复的map存放的是键值对应的元素信息这样看来 单纯的数组只是实现了单一的顺序存放这么一种结构,很难满足复杂的算法以及程序需要我想sun开发这么一个大的集合类,不是卖弄,而是为了为程序员提供当便的服务当然了,这只是我肤浅的见解,深层的东西你还是看别人的回复吧~ 实在太多了。map下边还有好多呢。实际编个小程序基本都用不到。那什么时候才会大量用到呢? 小程序里的确是有点用不上但复杂一点的程序里,就必须使用容器了,例如这么一道题目,要求用java实现:/*1. 有5栋5种颜色的房子 2. 每一位房子的主人国籍都不同 3. 这五个人每人只喝一个牌子的饮料,只抽一个牌子的香烟,只养一种宠物 4. 没有人有相同的宠物,抽相同牌子的烟,喝相同牌子的饮料 已知条件: 1. 英国人住在红房子里 2. 瑞典人养了一条狗 3. 丹麦人喝茶4. 绿房子在白房子的左边 5. 绿房子主人喝咖啡 6. 抽pallmall烟的人养了一只鸟 7. 黄房子主人抽dunhill烟 8. 住在中间房子的人喝牛奶 9. 挪威人住在第一间房子 10.抽blends烟的人住在养猫人的旁边 11.养马人住在抽dunhill烟人的旁边 12.抽bluemaster烟的人喝啤酒 13.德国人抽prince烟 14.挪威人住在蓝房子旁边 15.抽blends烟的人的邻居喝矿泉水 问题:谁养鱼?(这道迷题出自1981年柏林的德国逻辑思考学院,据说世界上只有2%的人能出答案,就连大名鼎鼎的爱因斯坦也成为此题大伤脑)*/ 和你说的相反jdk的容器非常之 非常之 非常之常用 楼主千万要好好学习!不只是java有C++其实也有的,C也有。只要是语言,不实现一下容器也说不过去! 数组能采用 Hash 算法查找么?没想到你这么多勋章, 问的问题却是这么的愚蠢 如何在myeclipse中使用ultraedit 不懂,为啥出错了呢? 面板画点问题! 如何使自己写的类具有生成事件的能力? 菜鸟问题:矩阵乘法的这一句是不是这样写? 大家来谈谈阅读thking in java 第15章(分布式计算)的感受,, 关于设置JAVA环境的问题!(在线,马上给分) JAVA编译的CLASS文件可以反编译为JAVA文件吗? 菜鸟问题,版本不对? 空指针异常如何处理 求JAVA高手 帮忙修改程序,以实现按不用类型查询 关于java登陆界面
数组Y的,就是sun为了迎合这些所谓的C++,C程序员,而遗留下来的早应该被剔除的东西。
这里被剔除的还包括基本数据类型。
比如说List 它存放的元素必须是顺序的 可以重复的
set存放的是乱序的 并且元素值是不可以重复的
map存放的是键值对应的元素信息
这样看来 单纯的数组只是实现了单一的顺序存放这么一种结构,很难满足复杂的算法以及程序需要
我想sun开发这么一个大的集合类,不是卖弄,而是为了为程序员提供当便的服务
当然了,这只是我肤浅的见解,深层的东西你还是看别人的回复吧~
实际编个小程序基本都用不到。那什么时候才会大量用到呢?
但复杂一点的程序里,就必须使用容器了,例如这么一道题目,要求用java实现:/*
1. 有5栋5种颜色的房子
2. 每一位房子的主人国籍都不同
3. 这五个人每人只喝一个牌子的饮料,只抽一个牌子的香烟,只养一种宠物
4. 没有人有相同的宠物,抽相同牌子的烟,喝相同牌子的饮料
已知条件:
1. 英国人住在红房子里
2. 瑞典人养了一条狗
3. 丹麦人喝茶
4. 绿房子在白房子的左边
5. 绿房子主人喝咖啡
6. 抽pallmall烟的人养了一只鸟
7. 黄房子主人抽dunhill烟
8. 住在中间房子的人喝牛奶
9. 挪威人住在第一间房子
10.抽blends烟的人住在养猫人的旁边
11.养马人住在抽dunhill烟人的旁边
12.抽bluemaster烟的人喝啤酒
13.德国人抽prince烟
14.挪威人住在蓝房子旁边
15.抽blends烟的人的邻居喝矿泉水
问题:谁养鱼?
(这道迷题出自1981年柏林的德国逻辑思考学院,据说世界上只有2%的人能出答案,就连大名鼎鼎的爱因斯坦也成为此题大伤脑)
*/
jdk的容器非常之 非常之 非常之常用
不只是java有
C++其实也有的,C也有。
只要是语言,不实现一下容器也说不过去!