A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 林豪 中级黑马   /  2012-5-1 13:21  /  1958 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

集合中比如ArrayList 能放不同的元素进去里面吗?比如放个整形,在放个字符型,在放个自定义对象,放个类,如果能,那他们要怎么排序?
还有TreeSet能不能放?

5 个回复

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

评分

参与人数 1技术分 +1 收起 理由
岳民喜 + 1

查看全部评分

回复 使用道具 举报
个人理解:
ArrayList可以存放各种元素:整型,字符型,自定义对象等如果确保数据类型同样使用
ArrayList<类型> arrayList = new ArrayList<类型>();
ArrayList不唯一(存储元素可以相同)
ArrayList是有序(按照元素的插入次序存储元素的先后顺序,不会重新排列)
TreeSet可以存放各种元素使用与ArrayList相同
TreeSet数据是唯一的相同数据不能再次插入集合
TreeSet是无序的可能会按照元素的自然顺序 进行排序,或按照在创建 set 时所提供的比较器进行排序。
以上个人理解,有错误的地方请指出 {:soso_e181:}


回复 使用道具 举报
对于ArrayList ,你可以指定一个泛型,比如:ArrayList<String(可以为任意类)> 那么这个arrayList 则可以放入n多的String 对象,
当然也可以不要指定类型,那么你可以放入任意类型,注意,这里只能够放入对象,而不是8种基本数据类型,那么要怎么放入基本数据类型,比如int java中有相应的Integer 类
其他的同理,
对于排序,个人理解:首先,你ArrayLIst中总得是同一类型的数据吧,不然一个String 一个Boolean 类型怎么比? 对吧,所以需要制定放入同一类型的对象
并且使其具有可比性,然后就是比较大小排序了,他提供add方法有多个重载,和remove方法,

评分

参与人数 1技术分 +1 收起 理由
岳民喜 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马