黑马程序员技术交流社区

标题: 【求助】关于集合的一些问题!!!! [打印本页]

作者: 林豪    时间: 2012-5-1 13:21
标题: 【求助】关于集合的一些问题!!!!
集合中比如ArrayList 能放不同的元素进去里面吗?比如放个整形,在放个字符型,在放个自定义对象,放个类,如果能,那他们要怎么排序?
还有TreeSet能不能放?
作者: 徐慧书    时间: 2012-5-1 13:58
对于ArrayList ,你可以指定一个泛型,比如:ArrayList<String(可以为任意类)> 那么这个arrayList 则可以放入n多的String 对象,
当然也可以不要指定类型,那么你可以放入任意类型,注意,这里只能够放入对象,而不是8种基本数据类型,那么要怎么放入基本数据类型,比如int java中有相应的Integer 类
其他的同理,
对于排序,个人理解:首先,你ArrayLIst中总得是同一类型的数据吧,不然一个String 一个Boolean 类型怎么比? 对吧,所以需要制定放入同一类型的对象
并且使其具有可比性,然后就是比较大小排序了,他提供add方法有多个重载,和remove方法,
作者: 黄业凌    时间: 2012-5-1 14:36
个人理解:
ArrayList可以存放各种元素:整型,字符型,自定义对象等如果确保数据类型同样使用
ArrayList<类型> arrayList = new ArrayList<类型>();
ArrayList不唯一(存储元素可以相同)
ArrayList是有序(按照元素的插入次序存储元素的先后顺序,不会重新排列)
TreeSet可以存放各种元素使用与ArrayList相同
TreeSet数据是唯一的相同数据不能再次插入集合
TreeSet是无序的可能会按照元素的自然顺序 进行排序,或按照在创建 set 时所提供的比较器进行排序。
以上个人理解,有错误的地方请指出 {:soso_e181:}



作者: 贾联国    时间: 2012-5-1 15:41
ArrayList如果不放泛型的话,应该是放什么都可以,只按放的先后顺序排列,不过使用的时候一定要明确取出的数据的类型,再进行操作,防止类型转换异常。
TreeSet内放的元素必须实现comparable接口,要放不同元素的话可以先将数据存放到同一类中,并实现comparable接口(例如实现方法为比较地址值),就可以存放到TreeSet里
作者: 崔仁军    时间: 2012-5-1 17:59
1   集合中存放的依然是对象的引用而不是对象本身
2   集合当中只能放置对象的引用,无法放置原生数据类型,我们需要使用原生数据类型的包装类才能加入到集合当中。
3   集合当中放置的都是Object 类型,因此取出来的也是Object 类型,那么必须要使用强制类型转换将其转换为真正的类型(放置进去的类型)。
作者: 永恒之翼网络    时间: 2012-5-1 19:15
ArrayList和TreeSet都是集合,集合可以存取任意类型的对象(包括自定义的),但是不能基本类型数据,如int,char等等。如果想存储基本类型数据,得把它们先转换成相当于的包装类对象。ArrayList底层是通过数组进行排序的,TreeSet是通过二叉树原理对元素排序的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2