数组_集合转换
集合和数组相互转换
很多时候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; }