1. 删除数组中的重复元素:
package com.test;
import java.util.ArrayList;
import java.util.List;
public class removeElementFromArray{
private static void removeElement(Integer arr[]){
List<Integer> arryList = new ArrayList<Integer>();
System.out.println("arr.length : " + arr.length);
for (int i=0; i<arr.length; i++) {
if(!arryList.contains(arr[i])) {
arryList.add(arr[i]);
}
}
Integer[] newStr = arryList.toArray(new Integer[arr.length-1]);
for (int elementB : newStr ) {
System.out.print(elementB + " ");
}
}
public static void main(String[] args){
Integer[] array = new Integer[]{1,2,2,3,4,5};
removeElement(array);
}
}
以上代码容易出现如下异常:
Exception in thread "main" java.lang.ArrayStoreException
at java.lang.System.arraycopy(Native Method)
at java.util.ArrayList.toArray(ArrayList.java:390)
at common.lang.StingUtilsTest.main(StingUtilsTest.java:23)
分析:
出现这种异常是由于数组中存入的数据与要转换的目标数组的类型不一致导致的;还有一点需要注意的是toArray参数数组的初始化大小如果list.size大于等于list的列表的长度那么就默认使用当前的参数数组,如果小于list的长度就会重新创建一个数组,建议如果知道list的长度一定要初始化数组的长度,这样可以节省内存空间,提高效率;