Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中减小字符数组的大小?_Java - Fatal编程技术网

如何在Java中减小字符数组的大小?

如何在Java中减小字符数组的大小?,java,Java,有几种方法可以使用新数组来减小数组大小。但是我想知道我们如何在不使用额外阵列的情况下实现这一点。一旦创建了阵列,就无法更改大小。您可以创建一个新数组,也可以使用一个新数组(不过,ArrayList在内部创建了一个新数组,但这是隐藏的)。您的意思是减小数组的元素大小吗? 如果是,我认为唯一的方法是将原始数组复制到大小较小的新数组。数组的大小是静态的。使用给定大小初始化数组时,它将始终具有该大小。把数组想象成一个鸡蛋盒。它的每个插槽中可能有蛋,也可能没有蛋,但它总是有12个插槽(或6个或18个或多个

有几种方法可以使用新数组来减小数组大小。但是我想知道我们如何在不使用额外阵列的情况下实现这一点。

一旦创建了阵列,就无法更改大小。您可以创建一个新数组,也可以使用一个新数组(不过,ArrayList在内部创建了一个新数组,但这是隐藏的)。

您的意思是减小数组的元素大小吗?
如果是,我认为唯一的方法是将原始数组复制到大小较小的新数组。

数组的大小是静态的。使用给定大小初始化数组时,它将始终具有该大小。把数组想象成一个鸡蛋盒。它的每个插槽中可能有蛋,也可能没有蛋,但它总是有12个插槽(或6个或18个或多个)

至于删除重复项,您可以将遇到的重复项替换为null,这会使插槽“为空”

公共静态无效删除重复项(字符[]arr){
对于(int i=0;i
你说的“减小大小”是什么意思?释放数组中不再需要的部分的内存?我需要从数组中删除重复的元素Java并不特别支持从数组中就地删除条目。数组大小是静态的,上次我检查过。他说“使用新数组”
public static void deleteDuplicates(Character[] arr){
    for(int i = 0; i < arr.length; i++){
        for(int j = 0; j < i; j++){
            if(arr[j] != null && arr[j].equals(arr[i]){
                //Found duplicate - delete duplicate and stop searching
                arr[i] = null;
                break;
        }
    }
}