首页 / JAVA / java手册-集合处理
java手册-集合处理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java手册-集合处理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1873字,纯文字阅读大概需要3分钟。
内容图文
![java手册-集合处理](/upload/InfoBanner/zyjiaocheng/592/1364c5bfa5ad4e77b70c11f99ae7a46a.jpg)
1.使用集合转数组的方法,必须使用集合的toArray(T[] array),传入的是类型
完全一样的数组,大小就是list.size()。
说明:使用toArray带参方法,入参分配的数组空间不够大时,toArray方法内部将重新分配内存空间,
并返回新数组地址;如果数组元素个数大于实际所需,下标为[ list.size() ]的数组元素将被置为
null,其它数组元素保持原值,因此最好将方法入参数组大小定义与集合元素个数一致。
正例:
List<String> list = new ArrayList<String>(2);
list.add("guan");
list.add("bao");
String[] array = new String[list.size()];
array = list.toArray(array);
2.使用工具类Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法,
它的add/remove/clear方法会抛出UnsupportedOperationException异常。
说明:asList的返回对象是一个Arrays内部类,并没有实现集合的修改方法。
Arrays.asList体现的是适配器模式,只是转换接口,后台的数据仍是数组。
String[] str = new String[] {"you", "wu"};
List list = Arrays.asList(str);
//第一种情况:list.add("yangguanbao");运行时异常。
//第二种情况:str[0] = "gujin"; 那么list.get(0)也会随之修改。
3.不要在foreach循环里进行元素的remove/add操作。remove元素请使用Iterator方式,
如果并发操作,需要对Iterator对象加锁。
正例:
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
if (删除元素的条件) {
iterator.remove();
}
}
4.集合初始化时,指定集合初始值大小。
说明:HashMap使用HashMap(int initialCapacity) 初始化。
正例:initialCapacity = (需要存储的元素个数 / 负载因子) +1。注意负载因子(即loaderfactor)
默认为0.75,如果暂时无法确定初始值大小,请设置为16(即默认值)。
反例:HashMap需要放置1024个元素,由于没有设置容量初始大小,随着元素不断增加,
容量7次被迫扩大,resize需要重建hash表,严重影响性能。
5.高度注意Map类集合K/V能不能存储null值的情况,如下表格:
6.利用Set元素唯一的特性,可以快速对一个集合进行去重操作,避免使用
List的contains方法进行遍历、对比、去重操作。
内容总结
以上是互联网集市为您收集整理的java手册-集合处理全部内容,希望文章能够帮你解决java手册-集合处理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。