大家好,又见面了,我是你们的朋友全栈君。
集合和数组相互转换
很多时候API的方法只支持集合或数组,比如适配器类中的数据只支持集合,这时候我们就要把数组转换集合。
集合转换成数组
可以把String换成其他类
List<String>list;
String[] characters = list.toArray(new String[list.size()]);
数组转换成集合
String[] arr ;
List<String>list1= Arrays.asList(arr);
上面是使用API来完成,使用循环遍历也是可以方便做到的。
##数组转换成集合(循环遍历)
public static List<String> getList(String[] arr){
List<String>list=new ArrayList<String>();
for(int i=0;i<arr.length;i++){
list.add(arr[i]);
}
return list;
}
将集合转换成数组(循环遍历)
public static String[] getArr(List<String> list){
String[] arr=new String[list.size()];
for(int i=0;i<list.size();i++){
arr[i]=list.get(i);
}
return arr;
}
将字符串反转输出的一个示例
//被操作的字符串
String str = “Welcome today is a good day!”;
使用集合和数组的相互转换
//字符串转为字符数组
char[] array = str.toCharArray();
//数组转为集合
List<Character> list = new ArrayList<Character>();
for (int i = 0; i < array.length; i++) {
list.add(array[i]);
}
//反转
Collections.reverse(list);
//集合转为数组
Character[] characters = list.toArray(new Character[list.size()]);
//构建反转后的字符串
StringBuilder sb = new StringBuilder();
for (Character character : list) {
sb.append(character);
}
System.out.println(sb.toString());
更简单的实现:使用StringBuilder的反转
StringBuilder sb = new StringBuilder(str);
sb.reverse();
System.out.println(sb.toString());
算法,从两头往中间挤着交换前后的位置
//字符串转为字符数组
char[] array = str.toCharArray();
for (int low = 0, high = array.length-1; low < high; low++, high--) {
//交换位置
char temp = array[low];
array[low] = array[high];
array[high] = temp;
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/149244.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...