转Set
存在意义
为了去重,一般都可以将List转化成Set。
一般做法
Set有个构造方法,入参是Collection。主要原理是,每个Collection都会有迭代器,通过迭代器,就可以按固定的顺序,遍历Collection,然后将每个对象插入到Set中。
List2Set
所以List转Set,一般是遍历List,然后一个一个插入。
Map2Set
对于Map的key转Set,可以通过Map.keySet()。对于Map的values,可以先通过Map.values(),获取一个关于value的Collection,然后通过迭代器,add到Set中。对于Map的Entry转Set,通过Map.entrySet()即可。
Array2Set
思想和List2Set差不多,先遍历,然后一个一个add进去。
转List
存在意义
一般很多接口的入参,都要求是List,当我们遇到Set类型时,就需要Set转List了。
一般做法
因为各个集合类,都会有迭代器,所以可以遍历,然后再一个一个存入到List中。
所以Set、Map、Array转List的时候,都可以用这个思路。基本上JDK自身的实现也是如此。对于Map转List,因为Map.keySet()、Map.values()、 Map.entrySet()等接口的存在,所以转List也是很方便的。