将一个字符串数组附加到Java中的Integer类型的arraylist中

时间:2014-03-13 16:18:01

标签: java arrays arraylist

我有ArrayList<Integer>名为nodes。我想将array []中的元素分配给ArrayList中的元素。这样arraylist中的第一个元素将在数组中包含第一个元素作为其属性..依此类推。但是,数组中只有6个元素,因此对于第7个元素,它再次来自array []的第一个元素。数组的类型为Integer。

public static String[] Interest = new String[] {"I1","I2","I3","I4","I5","I6"};

public static void main(String[] args){
    System.out.println("Enter number of nodes");
    Scanner sc = new Scanner(System.in);

    int n = sc.nextInt();
    for(int i=0;i<=n;i++) {
        nodes.add(i);
    }

    System.out.println(nodes);
}

我想为node中的每个元素设置兴趣个人资料。为此,我有一个名为Interest的数组,其中包含6个元素。现在说node中的第一个元素,我想设置兴趣的偏好。例如,第一个元素可能具有兴趣简档,因为I1 = 10,I2 = 8,...,I6 = 2,依此类推。

我正在考虑使用像SetIntensity(ArrayList element, array of integers)这样的方法,它将为作为参数传递的元素设置兴趣简档。我不确定它是否正确,但我期待这样的事情:

public static void setInterest(List<String> array){

    String[] Interest = new String[]{"I1","I2","I3","I4","I5","I6"};

    for(int k=0;k<array.size();k++){
        array.get(k);
        for(int j=0;j<Interest.length;j++){

        }
    }
}

1 个答案:

答案 0 :(得分:2)

听起来你需要一个Node类来Map来存储偏好。

class Node {

    Integer id;
    Map<String, Integer> interestPreferences;

    public Node(Integer id) {
        this.id = id;
        this.interestPreferences = new HashMap<String, Integer>();
    }

    void setPreference(String key, Integer value) {
        interestPreferences.put(key, value);
    }

    Interest getPreference(String key) {
        return interestPreferences.get(key);
    }
}

然后像这样使用它:

public static List<Node> nodes = new ArrayList<Node>();
public static String[] Interest = new String[] {"I1","I2","I3","I4","I5","I6"};

public static void main(String[] args){
    System.out.println("Enter number of nodes");
    Scanner sc = new Scanner(System.in);

    int n = sc.nextInt();
    for(int i=0;i<=n;i++) {
        Node node = new Node(i);
        node.setPreference("I1", 10);
        node.setPreference("I2", 8);
        //....
        node.setPreference("I6", 2);
        nodes.add(node);
    }

    System.out.println(nodes);
}