刪除數組藉助於list
| 代碼如下 |
複製代碼 |
private String[] removePaths(String path, String[] srcpaths) { List<String> list = new ArrayList<String>(); int k = srcpaths.length;//原字串長度 int i=0; while(i<k){ if(!srcpaths[i].equals(path)){ list.add(srcpaths[i]); //不等就加入list } i++; } String[] temp = new String[list.size()]; for(int j=0;j<list.size();j++){ temp[j] = list.get(j); } return temp; } |
沒編譯器,隨便寫寫,大概就那個意思吧。。。
| 代碼如下 |
複製代碼 |
private String[] removePaths(String path, String[] srcpaths) { List list = Arrays.asList(srcpaths); list.remove(path); String[] temp = new String[list.size()]; return list.toArray(temp); } |
刪除數組中相同的元素
先把源數組進行預設排序
使相同元素相鄰
然後進行迴圈操作刪除相同元素
| 代碼如下 |
複製代碼 |
<html> <body> <script type="text/javascript"> var source = ["林沖","魯智深","戴宗","林沖","時遷","朱貴"]; var target = new Array(); source.sort(); target.push(source[0]); for(var i=1;i<source.length;i++) { if(source[i] != source[i-1]) { target.push(source[i]); } } document.write('原數組:' + source + "<br />"); document.write('所需數組:' + target); </script> </body> </html> |
再補充兩個執行個體
| 代碼如下 |
複製代碼 |
public static void main(String[] args) { getDistinct(new int[] { 6, 7, 3, 6, 5, 2, 7, 8 }); } static void getDistinct(int array[]) { java.util.List list = new java.util.ArrayList(); for (int i = 0; i < array.length; i++) { if (!list.contains(array[i])) { list.add(array[i]); System.out.print(array[i] + " "); } } } 輸出:6 7 3 5 2 8 |
看了一下ArrayList的contains()方法源碼:
| 代碼如下 |
複製代碼 |
public boolean contains(Object elem) { return indexOf(elem) >= 0; } public int indexOf(Object elem) { if (elem == null) { for (int i = 0; i < size; i++) if (elementData[i]==null) return i; } else { for (int i = 0; i < size; i++) if (elem.equals(elementData[i])) return i; } return -1; }
|