在正确的位置为java数组添加值
我试图写一个小程序,将包含一系列的个人资料,我对添加个人资料的方法卡住了,因为我希望他们被添加到正确的地方,所以它不需要排序。例如 如果我有一个具有3个配置文件的数组 波特,H 史密斯,T 沃伦,B 我想加上Summer,p,我想把它加在第一个和第二个索引之间 在有人问我之前,我还没有太多的代码,因为我仍在考虑如何搜索数组并说出需要放置配置文件的位置 欢迎提出任何意见在正确的位置为java数组添加值,java,arrays,search,Java,Arrays,Search,我试图写一个小程序,将包含一系列的个人资料,我对添加个人资料的方法卡住了,因为我希望他们被添加到正确的地方,所以它不需要排序。例如 如果我有一个具有3个配置文件的数组 波特,H 史密斯,T 沃伦,B 我想加上Summer,p,我想把它加在第一个和第二个索引之间 在有人问我之前,我还没有太多的代码,因为我仍在考虑如何搜索数组并说出需要放置配置文件的位置 欢迎提出任何意见 (还需要是数组,而不是ArrayList或任何其他数据结构)尝试在排序后正常添加列表。如果要使用数组而不是合适的数据结构,最好使
(还需要是数组,而不是ArrayList或任何其他数据结构)尝试在排序后正常添加列表。如果要使用数组而不是合适的数据结构,最好使用,然后使用查找合适的位置。但是您必须移动所有后续元素。首先,我强烈建议在数组上使用集合框架
列表
。因为它提供了比使用普通阵列更大的灵活性和改进
对于您的解决方案,我建议您使用
LinkedList
。这提供了在特定位置插入元素的方法add(int-index,E-element)
,非常有效无论您谈论什么,最好通过链接列表来完成
因为您只想使用数组
,所以正如您所知,数组中声明的元素数量是恒定的。因此,我建议您创建一个临时数组列表
,然后将这些元素复制到所需的数组中。这是怎么做的
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]);
}
}
}
import java.util.ArrayList;
公开课考试{
公共静态void main(字符串[]args){
字符串[]yourInitialArray={“Potter,H”,“Smith,T”,“Warren,B”};
//创建临时ArrayList
ArrayList temporary=新的ArrayList();
对于(int i=0;i
为什么它需要是一个数组?这是一个项目或某个学术项目的真正要求吗?LinkedList一点效率都不高。ArrayList通常效率更高。但无论如何,树集看起来更合适。@JBNizet树集怎么会这样呢?因为他没有指定任何排序标准,对吗?LinkedList在任何ramdom位置插入元素时都比在ArrayList中更节省内存,这需要遍历元素OP说:“我希望它们被添加到正确的位置,这样就不需要排序了。”。所以他想要一个总是排序的数据结构。ArrayList不需要遍历,因为它由数组支持。它需要改变其要素。链表需要遍历,因为它只引用第一个和最后一个节点。但它不需要移动。而且它比数组使用更多的内存(尽管这与效率没有多大关系)。@JBNizet是的,明白了。谢谢我需要复习。@tomooss123请看一下上面的代码。您可以将其复制粘贴到Eclipse。这就是你所说的吗?好的,谢谢,我知道元素需要移位,但是数组的代码是什么样子的。binarySearch?你看过文档了吗?有什么你不明白的?花些时间去阅读和理解它,尝试一些东西,如果你有任何错误的话,去纠正它们。