我需要创建一个方法,将整数插入到整数的排序数组中。 我已经完成了这个方法但不是整数而是字符串。现在我的整数有问题。
我的字符串数组方法是:
public int inserisci(String s) throws IllegalStateException {
if(numElementi == elementi.length)
throw new IllegalStateException("Full array.");
int pos = ricercaBinaria(s);
if(pos > -1)
return -1;
if(elementi[-(pos + 1)] != null) {
for(int i = numElementi; i >= -(pos + 1); i--)
elementi[i + 1] = elementi[i];
}
elementi[-(pos + 1)] = s;
numElementi++;
return -(pos + 1);
}
对于我写这个字符串的字符串数组:
public int insert(int x) throws IllegalStateException {
if(numElements == elements.length)
throw new IllegalStateException("Full array.");
int pos = binarySearch(x);
if(pos > -1)
return -1;
if(**elements[-(pos + 1)] != null**) {
for(int i = numElements; i >= -(pos + 1); i--)
elements[i + 1] = elements[i];
}
elements[-(pos + 1)] = x;
numElements++;
return -(pos + 1);
}
但粗体部分(元素[ - (pos + 1)]!= null )不正确。我怎样才能更换它? 感谢
答案 0 :(得分:1)
答案 1 :(得分:0)
试试这个。使用 ArrayUtils#add(array,index,value) 方法在索引2处插入一个新值。
注意:如果您处于学习阶段,我建议您,暂时不要使用它。
int[] arr = { 0, 2, 3, 5, 6, 7 };
System.out.println("Previous size:" + arr.length);
arr = org.apache.commons.lang.ArrayUtils.add(arr, 2, 1);
System.out.println("New Size:" + arr.length);
System.out.println("inserted value:" + arr[2]);
输出:
Previous size:6
New Size:7
inserted value:1
答案 2 :(得分:0)
只需使用Java的List类作为Collections框架的一部分。它比你在这里实现排序列表更有效,更可靠,更实用。
如果它是数组的一部分,则将所有数据添加到列表中:java.util.Array #AsList(T [] t)(如果类型T为int,则返回List) 要对此数组进行排序,因为int是基本类型,使用<和> java.util.Collections中#排序(yourList)
要了解List在列表中使用或可以使用的所有方法,请阅读这两个链接。