附注:
我想通过Array类而不是ArrayList执行此操作。
您可以假设String数组中的字符串已按正确的字典顺序排列(按字母顺序排列)。
例如:
如果数组是 - > String [] list = {“Bacon”,“Cheese”,“Milk”,“Pancake”,“Yogurt”};
我想将字符串“OJ”添加到混合中,它应该是这样的:
{ “培根”, “干酪”, “牛奶”, “OJ”, “煎饼”, “酸奶”}
提前致谢!
答案 0 :(得分:1)
使用java.util.Arrays.binarySearch(...)。
您必须增加阵列的大小。这听起来像是家庭作业。 TreeSet是一个更容易使用的类。
答案 1 :(得分:0)
您可以将新条目追加到数组的末尾,然后对其进行排序。
答案 2 :(得分:0)
插入排序的简单方法:
public class InsertionSort {
public static void main(String[] args) {
String[] list = {"Bacon", "Cheese", "Milk", "Pancake", "Yogurt", "OJ"};
InsertionSort in = new InsertionSort();
list = in.insertSort(list);
for (String str : list) {
System.out.println(str);
}
}
public String[] insertSort(String[] list) {
for (int i = 1; i < list.length; i++) {
String val = list[i];
int value = list[i].toLowerCase().charAt(0);
int j = i - 1;
while (j >= 0 && list[j].toLowerCase().charAt(0) > value) {
list[j + 1] = list[j];
j = j - 1;
}
list[j + 1] = val;
}
return list;
}
}
算法取自here:
public static void insertSort(int[] A){
for(int i = 1; i < A.length; i++){
int value = A[i];
int j = i - 1;
while(j >= 0 && A[j] > value){
A[j + 1] = A[j];
j = j - 1;
}
A[j + 1] = value;
}
}