关于java数组的问题,怎么在已经定义了的有顺序的数组中添加元素;

请问:现有一个有序的数组,现在想要将一个元素插入到该数组中去,还要保证该数组是有序的;
因为数组长度一旦确定就不能改变,但是我想知道,有没有一种方法可以增加数组的长度并且按照合法的顺序添加元素。length变为length+1;
![图片说明](https://img-ask.csdn.net/upload/201609/29/1475130773_864223.jpg)图片说明

6个回答

图片说明

不建议对数组进行添加和删除操作,效率很低。正常情况下没有这样搞的

sinat_36016725
Xgf-943 回复efficiency_shang: 好的,谢谢。就然如此那就不深究了
3 年多之前 回复
u013076997
efficiency_shang 回复Xgf-943: 数组应该一旦被创建长度是不能变的,可以用List,Set等取代数组进行相应的操作
3 年多之前 回复
sinat_36016725
Xgf-943 前面的利用折半查找找到该元素的应该插入的位置我都找到了,到那时我要怎么才能把这个元素插入在这个位置,并且将原来的位置上面的元素往后移动一位,length+1?
3 年多之前 回复

数组元素添加完成后“效果应该是:[11,22,33,44,56,78,99,100,102]”

sinat_36016725
Xgf-943 [11,22,33,44,56,58,78,99,100,102]
3 年多之前 回复

使用Linklist,也就是链表,直接插入就行;链表长度可以随意更改,适用于,插入删除操作多的情况(效率比数组高很多,不会有空间浪费),定长数组适用于查找多的情况,效率比链表高

sinat_36016725
Xgf-943 好吧,我只是在自学中,岳傲这个问题,我就问问有没有解决的必要,除了使用List的增删改查方法外,既然大家都不建议继续深究,那就算了,还是谢谢。
3 年多之前 回复

有序的数组 和List有什么区别呢

ShanYu1198124123
ShanYu1198124123 List按对象进入的顺序保存对象,不做排序或编辑操作;是有序的,这个有序指的就是存放的顺序和取出的顺序是一致的,并不是数据进行排序
3 年多之前 回复
ShanYu1198124123
ShanYu1198124123 List集合可以存储和操作数目不固定的一组数据。且只能存放引用类型的的数据,不能存放基本数据类型.
3 年多之前 回复
ShanYu1198124123
ShanYu1198124123 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型);
3 年多之前 回复

public class kk {

public static void main(String[] args) {
    int[] hu={11,22,33,44,55,66,77,88};
    int i;
    ArrayList<String> xinde= new ArrayList<String>();
    xinde=insert(hu,47);
    System.out.println("旧数组"+hu.length);
    System.out.println("新数组"+xinde.size());
    for(i=0;i<xinde.size();i++){
        System.out.print(xinde.get(i)+",");
    }
}

public static ArrayList<String> insert(int[] arr, int key){
    ArrayList<String> jiude = new ArrayList<String>();
    int i;
    int j;
    for (i = 0; arr[i] < key; i++) {
        jiude.add(String.valueOf(arr[i]));
    }
    jiude.add(String.valueOf(key));
    for (j = i; j < arr.length; j++) {
        jiude.add(String.valueOf(arr[j]));
    }
    return jiude;
}

}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问