在leetcode上刷题时,经常遇到字符串转数组或者集合,
1、有助于手敲代码。
如果有编辑器,还可以借助编辑器带出来;如果直接手敲,可能好多方法都记不大清;
2、有助于快速选择合适容器。
对各种容器的方法信手拈来,可以快速在脑中构建处理问题的方法。
经常用的容器
String
Array
Collection接口有 3 种子类型集合:List,Set,Queue
数组转List
String[] s = {“aa”,“bb”,“cc”};
List strlist = Arrays.asList(s);
但是注意:
(1)该方法不适用于基本数据类型(byte,short,int,long,float,double,boolean),可以是integer。
(2)该方法将数组与列表链接起来,当更新其中之一时,另一个自动更新
(3)不支持add和remove方法.Arrays.asList() 返回一个受指定数组决定的固定大小的列表。
如果想再做增删操作呢?将数组中的元素一个一个添加到列表,这样列表的长度就不固定了,可以进行增删操作。
List staffsList = new ArrayList();
for(String temp: staffs){
staffsList.add(temp);
}
staffsList.add(“Mary”); // ok
staffsList.remove(0); // ok
数组转Set
String[] staffs = new String[]{“Tom”, “Bob”, “Jane”};
Set staffsSet = new HashSet<>(Arrays.asList(staffs));
staffsSet.add(“Mary”); // ok
staffsSet.remove(“Tom”); // ok
List转数组
String[] staffs = new String[]{“Tom”, “Bob”, “Jane”};
List staffsList = Arrays.asList(staffs);
Object[] result = staffsList.toArray();
List转Set
String[] staffs = new String[]{“Tom”, “Bob”, “Jane”};
List staffsList = Arrays.asList(staffs);
Set result = new HashSet(staffsList);
Set转数组
String[] staffs = new String[]{“Tom”, “Bob”, “Jane”};
Set staffsSet = new HashSet<>(Arrays.asList(staffs));
Object[] result = staffsSet.toArray();
Set转List
String[] staffs = new String[]{“Tom”, “Bob”, “Jane”};
Set staffsSet = new HashSet<>(Arrays.asList(staffs));
List result = new ArrayList<>(staffsSet);
Collection
Collection接口是 (java.util.Collection)是Java集合类的顶级接口之一,整个集合框架就围绕一组标准接口而设计.
Collection 接口有 3 种子类型集合: List、Set 和 Queue,再下面是一些抽象类,最后是具体实现类,常用的有ArrayList、LinkedList、HashSet、LinkedHashSet、ArrayBlockingQueue等,下面是Collection的所有方法。
这些方法即可以操作Set集合,也可以操作Queue和List集合.