Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在正确的位置为java数组添加值_Java_Arrays_Search - Fatal编程技术网

在正确的位置为java数组添加值

在正确的位置为java数组添加值,java,arrays,search,Java,Arrays,Search,我试图写一个小程序,将包含一系列的个人资料,我对添加个人资料的方法卡住了,因为我希望他们被添加到正确的地方,所以它不需要排序。例如 如果我有一个具有3个配置文件的数组 波特,H 史密斯,T 沃伦,B 我想加上Summer,p,我想把它加在第一个和第二个索引之间 在有人问我之前,我还没有太多的代码,因为我仍在考虑如何搜索数组并说出需要放置配置文件的位置 欢迎提出任何意见 (还需要是数组,而不是ArrayList或任何其他数据结构)尝试在排序后正常添加列表。如果要使用数组而不是合适的数据结构,最好使

我试图写一个小程序,将包含一系列的个人资料,我对添加个人资料的方法卡住了,因为我希望他们被添加到正确的地方,所以它不需要排序。例如 如果我有一个具有3个配置文件的数组

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

我想加上Summer,p,我想把它加在第一个和第二个索引之间

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

欢迎提出任何意见


(还需要是数组,而不是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?你看过文档了吗?有什么你不明白的?花些时间去阅读和理解它,尝试一些东西,如果你有任何错误的话,去纠正它们。