ArrayList.add不起作用

时间:2015-04-14 02:27:49

标签: java

l1和l2是我输入的数组。我想将l1和l2合并为l3并按升序对它们进行排序。当我试图将l1和l2添加到l3时,我得到一个语法错误说明,"作业的左侧必须是变量"。

import java.util.ArrayList;
import java.util.Scanner;

public class Array {

    public static void main(String[] args) {

        String david;
        String bert;
        Scanner input = new Scanner(System.in);
        System.out.println("Enter a list of integers: ");
        bert = input.next();
        System.out.println("Enter a second list of integers: ");
        david = input.next();

        String parts[] = bert.split(" ");
        String parts2[] = david.split(" ");
        int[] l1 = new int[parts.length];
        for(int n = 0; n < parts.length; n++) {
           l1[n] = Integer.parseInt(parts[n]);
        }
        int[] l2 = new int[parts2.length];
        for(int n = 0; n < parts2.length; n++) {
           l2[n] = Integer.parseInt(parts2[n]);
        }

        int w = 0;
        int s = 0;
        int a = 0;
        ArrayList<Integer> l3 = new ArrayList <Integer> ();

        while(w>s)
        if (l1[w]<=l2[s])
            l3.add(a++) = l1[w++];
        else 
            l3.add(a++) = l2[s++];

        while(w>s)
        if (l1[w]<=l2[s])
                l3.add(a++) = l1[w++];
        else 
                l3.add(a++) = l2[s++];

        while(w==s)
        if (l1[w]<=l2[s])
                l3.add(a++) = l1[w++];
        else 
                l3.add(a++) = l2[s++];

        for (int i = 0; i < l3.size(); i++) {
              System.out.print(l3.add(i) + " ");
            }

     }      
}

2 个答案:

答案 0 :(得分:1)

ArrayList.add(int, E)方法可以采用索引和值(也就是说,您无法将值分配给左侧add 的结果 - 作业的 - 手边必须是变量)。另外,请使用大括号。像

这样的东西
while (w > s) {
    if (l1[w] <= l2[s]) {
        l3.add(a++, l1[w++]);
    } else {
        l3.add(a++, l2[s++]);
    }
}

答案 1 :(得分:0)

您正尝试在将其分配给另一个变量的同时执行.add()方法。这不起作用。你应该坚持:

l3.add(a++);