Java 數組長度固定,增刪改需借助 ArrayList。
String[] arr = {"Java", "C++", "PHP", "C#", "Python", "C++", "Java"};
List<String> list = new ArrayList<>();
for (String s : arr) if (!list.contains(s)) list.add(s);
String[] unique = list.toArray(new String[0]);
// 結果:[Java, C++, PHP, C#, Python]
或用 LinkedHashSet 保持順序:
String[] unique = new LinkedHashSet<>(Arrays.asList(arr)).toArray(new String[0]);
List<String> list = new ArrayList<>(Arrays.asList(arr));
list.remove(2); // 刪除 "PHP"
String[] arr2 = list.toArray(new String[0]);
List<String> list = new ArrayList<>(Arrays.asList(arr));
list.add(2, "Ruby"); // 在索引 2 插入
String[] arr3 = list.toArray(new String[0]);
list.add("Go"); // 等同於 list.add(list.size(), "Go")
ArrayList 而非數組HashSet O(1) 查找優於 List.contains O(n)var 簡化聲明public class ArrayUtilsDemo {
public static void main(String[] args) {
String[] src = {"Java", "C++", "PHP", "C#", "Python", "C++", "Java"};
print("原始", src);
print("去重", unique(src));
print("刪除索引2", removeAt(src, 2));
print("索引2插入Ruby", insertAt(src, 2, "Ruby"));
}
// 工具方法省略...
}