0

我正在尝试编写一个包含一系列人员配置文件的小程序,并且我被困在添加配置文件的方法上,因为我希望将它们添加到正确的位置,因此不需要对其进行排序。例如,如果我有一个包含 3 个配置文件的数组

波特,H 史密斯,T 沃伦,B

我想添加 Summer,PI 希望将它添加到第一个和第二个索引之间

在有人问之前,我没有太多代码,因为我仍在考虑如何搜索数组并说出需要放置配置文件的位置。

任何想法表示赞赏

(它还需要是 Array 而不是 ArrayList 或任何其他数据结构)

4

4 回答 4

1

无论您在谈论什么,最好由LinkedList http://docs.oracle.com/javase/6/docs/api/java/util/LinkedList.html
完成 既然您只想使用Array,那么您知道数组有一个常量您声明的元素数量。所以我建议你创建一个临时 ArrayList的,然后将这些元素复制到你想要的数组中。这是如何完成的

import java.util.ArrayList;

public class Test {

    public static void main(String[] args) {
        String[] yourInitialArray = { "Potter, H", "Smith, T", "Warren, B" };

        // Creating a temporary ArrayList
        ArrayList<String> temporary = new ArrayList<String>();
        for (int i = 0; i < yourInitialArray.length; i++) {
            if (i != 1) {
                temporary.add(yourInitialArray[i]);
            } else {
                temporary.add("Summer, P");
                temporary.add(yourInitialArray[i]);
            }
        }
        yourInitialArray = new String[temporary.size()];
        for (int j = 0; j < temporary.size(); j++) {
            yourInitialArray[j] = temporary.get(j);
            System.out.println(yourInitialArray[j]);
        }

    }
}
于 2013-04-20T17:21:10.787 回答
1

如果你想使用一个数组而不是一个像样的、合适的数据结构,那么使用Arrays.binarySearch()来找到合适的位置。但是您必须移动所有后续元素。

于 2013-04-20T17:11:53.563 回答
0

尝试在列表排序后正常添加。最好使用

于 2013-04-20T17:11:39.027 回答
0

首先,我强烈建议List在数组上使用集合框架。因为它比使用普通数组提供了很多灵活性和改进

对于您的解决方案,我建议使用LinkedList. 这提供了 add(int index, E element ) 在特定位置插入元素的方法,非常有效

于 2013-04-20T17:14:38.927 回答