我正在尝试编写一个包含一系列人员配置文件的小程序,并且我被困在添加配置文件的方法上,因为我希望将它们添加到正确的位置,因此不需要对其进行排序。例如,如果我有一个包含 3 个配置文件的数组
波特,H 史密斯,T 沃伦,B
我想添加 Summer,PI 希望将它添加到第一个和第二个索引之间
在有人问之前,我没有太多代码,因为我仍在考虑如何搜索数组并说出需要放置配置文件的位置。
任何想法表示赞赏
(它还需要是 Array 而不是 ArrayList 或任何其他数据结构)
无论您在谈论什么,最好由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]);
}
}
}
如果你想使用一个数组而不是一个像样的、合适的数据结构,那么使用Arrays.binarySearch()来找到合适的位置。但是您必须移动所有后续元素。
尝试在列表排序后正常添加。最好使用
首先,我强烈建议List
在数组上使用集合框架。因为它比使用普通数组提供了很多灵活性和改进
对于您的解决方案,我建议使用LinkedList
. 这提供了 add(int index, E element )
在特定位置插入元素的方法,非常有效