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

时间:2013-04-20 17:08:34

标签: java arrays search

我正在尝试编写一个包含一系列人物配置文件的小程序,我仍然坚持使用添加配置文件的方法,因为我希望将它们添加到正确的位置,因此它不需要被分类。例如 如果我有一个包含3个配置文件的数组

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

我想添加Summer,P我想在第1和第2个索引之间添加它

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

赞赏任何想法

(它也需要是一个数组而不是一个ArrayList或任何其他数据结构)

4 个答案:

答案 0 :(得分:1)

如果要使用数组而不是合适的数据结构,请使用Arrays.binarySearch()查找适当的位置。但是你必须转移所有后续元素。

答案 1 :(得分: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]);
        }

    }
}

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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