java中的集合的运用_java中运用集合的技巧

西安Java培训中给大家整理了运用集合的技巧:看到Array就是数组结构,有角标,查询速度很快。

看到link就是链表结构:增删速度快,并且有特有办法。addFirst; addLast; removeFirst(); removeLast(); getFirst();getLast();

看到hash就是哈希表,就要想要哈希值,就要想到仅有性,就要想到存入到该结构的中的元素必须掩盖hashCode,equals办法。

看到tree就是二叉树,就要想到排序,就想要用到比较。

比较的两种办法:

一个是Comparable:掩盖compareTo办法;

一个是Comparator:掩盖compare办法。

LinkedHashSet,LinkedHashMap:这两个调集能够确保哈希表有存入次序和取出次序共同,确保哈希表有序。

调集什么时候用?

当存储的是一个元素时,就用Collection。当存储目标之间存在着映射联系时,就运用Map调集。

确保仅有,就用Set。不确保仅有,就用List。

------------------------------------------------------------------------------------------------

Collections:它的呈现给调集操作供给了更多的功用。这个类不需要创立目标,内部供给的都是静态办法。

静态办法:

Collections.sort(list);//list调集进行元素的天然次序排序。

Collections.sort(list,new ComparatorByLen());//按指定的比较器办法排序。

class ComparatorByLen implements Comparator{

public int compare(String s1,String s2){

int temp = s1.length()-s2.length();

return temp==0?s1.compareTo(s2):temp;

}

}

Collections.max(list); //回来list中字典次序最大的元素。

int index = Collections.binarySearch(list,"zz");//二分查找,回来角标。

Collections.reverseOrder();//逆向反转排序。

Collections.shuffle(list);//随机对list中的元素进行方位的置换。

将非同步调集转成同步调集的办法:Collections中的  XXX synchronizedXXX(XXX);

List synchronizedList(list);

Map synchronizedMap(map);

原理:定义一个类,将调集所有的办法加同一把锁后回来。

Collection 和 Collections的区别:

Collections是个java.util下的类,是针对调集类的一个东西类,供给一系列静态办法,实现对调集的查找、排序、替换、线程安全化(将非同步的调集转换成同步的)等操作。

Collection是个java.util下的接口,它是各种调集结构的父接口,承继于它的接口主要有Set和List,供给了关于调集的一些操作,如刺进、删去、判别一个元素是否其成员、遍历等。

-------------------------------------------------------

Arrays:

用于操作数组目标的东西类,里边都是静态办法。

asList办法:将数组转换成list调集。

String[] arr = {"abc","kk","qq"};

Listlist = Arrays.asList(arr);//将arr数组转成list调集。

将数组转换成调集,有什么优点呢?用aslist办法,将数组变成调集;

能够通过list调集中的办法来操作数组中的元素:isEmpty()、contains、indexOf、set;

注意(局限性):数组是固定长度,不能够运用调集目标添加或许删去等,会改变数组长度的功用办法。比方add、remove、clear。(会报不支持操作反常UnsupportedOperationException);

如果数组中存储的引证数据类型,直接作为调集的元素能够直接用调集办法操作。

如果数组中存储的是根本数据类型,asList会将数组实体作为调集元素存在。

调集变数组:用的是Collection接口中的办法:toArray();

如果给toArray传递的指定类型的数据长度小于了调集的size,那么toArray办法,会自定再创立一个该类型的数据,长度为调集的size。

如果传递的指定的类型的数组的长度大于了调集的size,那么toArray办法,就不会创立新数组,直接运用该数组即可,并将调集中的元素存储到数组中,其他为存储元素的方位默认值null。

所以,在传递指定类型数组时,最好的办法就是指定的长度和size持平的数组。将调集变成数组后有什么优点?限制了对调集中的元素进行增删操作,只需获取这些元素即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值