内容:
1、List转Array 2、Array转List
3、String转int[],String[](对单个字符) 4、数组、List、Set、Map相互转换
5、一行输入多个元素方法
常用集合:Map、Set、List、Array、String
1、List转Array:
List<String> list=new ArrayList<>();3、String转int[],String[](对单个字符)
String[] s1 = new String[list.size()];
list.toArray(strings);
注意:
List.toArray()方法返回的是Object[] 数组,转起来很麻烦的而且不能对数组(integer[])这样强转
必须保证s1大小和list大小相同,否则小了会帮你创建相同大小的String[],大了后面帮你不上null,浪费空间
2、Array转List:
int[] a = {1,2,3}
List<String> list=new ArrayList<>();
list.addAll(Arrays.asList(a));
注意:
List list = Arrays.asList(a);也是可行的,可是此时的list是Arrays下的ArrayList,而不是我们平时用的java.util.ArrayList
list instanceof ArrayList的时候是false;
3、String转int[],String[](对单个字符)
String转int[]
String a ="123456";
int[] b =new int[a.length()];
for(int i = 0;i<a.length()-1;i++){
b[i]=Integer.parseInt(a.substring(i,i+1));//简化之处,这样就不用先charAt()在String.valueOf();
}
String转String[]
String[] c =a.split(",");
或者像上面的
char转int
int a = Character.getNumericValue('9');
注意:
string a ="good",实际在常量词中是以连续的char 'g','o','d'存在的。如果a = "goods"的话,那么在常量词就只会多一个‘s’,而不是“goods”
4、数组、List、Set、Map相互转换
List,Set,数组——》Map
都得一个一个put进去的
List ——》Set:
Set<String> mapKeySet = new HashSet<>(list);
Set——》List:
List<String> mapKeyList = new ArrayList<>(set);
Map——》Set:
// 将Map 的键转化为Set
Set mapKeySet = map.keySet();
// 将Map 的值转化为Set
Set mapValuesSet =newHashSet(map.values());
Set,List——》Array:
用法和注意事项基本都同上第一个标题所讲的一样。
注意:
这里建议用LinkHashMap,其他的Map转换出来的结果是乱序的,不建议转换,非要转换,最好再排下序。
当然,如果要具体的例子可以参考这个博客:blog.csdn.net/top_code/article/details/10552827
5、一行输入多个元素方法
Listlist = new ArrayList<>();
Scanner scan = new Scanner(System.in);
String s = scan.nextLine();
String[] ss = s.split(" ");
for (String string : ss) {
list.add(Integer.parseInt(string));
}
System.out.println(list);