set集合变换
set集合的变换,如果是HashSet,有一个drop方法。如果是TreeSet可以使用headSet、subSet、tailSet三个方法进行变换。
drop()方法,对集合进行丢弃,产生一个新的集合,从集合开始位置进行丢弃,方法接收丢弃元素的个数,方法签名如下:
![](https://img.haomeiwen.com/i7368752/31602cbe8eb89f08.png)
我们通过一个案例,来看看HashSet接口的变化操作,参考代码:
![](https://img.haomeiwen.com/i7368752/ccb8abd344a90224.png)
headSet(EtoElement),对集合截取,返回一个新的集合,截取范围[开始,toElement),方法签名如下:
![](https://img.haomeiwen.com/i7368752/e723408050e28928.png)
subSet(EfromElement,E toElement),对集合截取,返回一个新的集合,截取范围[fromElement,toElement),方法签名如下:
![](https://img.haomeiwen.com/i7368752/be60af6cdfc03bdb.png)
tailSet(EfromElement),对集合截取,返回一个新的集合,[fromElement,结尾],方法签名如下:
![](https://img.haomeiwen.com/i7368752/874cfe907508c9a4.png)
我们通过一个案例去了解下,参考代码:
![](https://img.haomeiwen.com/i7368752/0ab91d1894d7866b.png)
set集合下标越界问题
set集合定位元素的时候不是用get方法,使用的是elementAt方法、elementAtOrNull方法,使用elementAt方法可能出现数组越界问题。如果传入索引是负数或者超出了集合的长度,也会出现下标越界异常。
我们先看,下标为负数的情况,参考代码:
![](https://img.haomeiwen.com/i7368752/e3a592c18c01eeb7.png)
我们再看,下标超出集合长度的情况,参考代码:
![](https://img.haomeiwen.com/i7368752/e66ad13d9f777cbd.png)
网友评论