如何删除逻辑错误

时间:2016-08-04 06:26:27

标签: java

我想打印数组中的所有值,但它只打印数组中的最后一个值,如何通过改进此代码来获得我想要的结果:

 public void applyAttendence(ArrayList<String> presents, ArrayList<String> absents) {
    ArrayList<String> present = new ArrayList<String>();
    HashMap params = new HashMap();
    // [232, 232, 12, 223]
    String[] stringArray = presents.toArray(new String[0]);
    if (presents.size() == 0) {
        params.put("present", "");
    } else {

        // for(String pre:presents) {
        params.put("present", stringArray);

        System.out.println(" present[]" + presents);
        System.out.println("hellow present man:  " + params.get("present"));
        // }
        System.out.println("hellow present man:  " + params.get("present"));
    }

    if (absents.size() == 0) {
        params.put("absent", "");
    } else {
        for (String abs : absents) {
        params.put("absent[]", abs);
        }
        // params.put("present[]", presents + "");
        //
        params.put("absent[]", absents + "");
    }
}

3 个答案:

答案 0 :(得分:1)

这是因为你每次都用不同的值覆盖相同的密钥

for (String abs : absents) {
     params.put("absent[]", abs);
 }

因此,您的hashmap只会根据键absent[]

写入最后一个值

答案 1 :(得分:0)

这可能是您已将数组定义为:

String[] stringArray = presents.toArray(new String[0]);

尝试初始化为:

String[] stringArray = new String[presents.size()];
stringArray = presents.toArray(stringArray );

答案 2 :(得分:0)

尝试使用此简化解决方案来显示所有出席情况

    // Handle one-finger pans
    let panRecognizer = UIPanGestureRecognizer(target: self, action: #selector(sceneViewPannedOneFinger))
    sceneView.addGestureRecognizer(panRecognizer)

    // Handle two-finger pans
    let twoFingerPanRecognizer = UIPanGestureRecognizer(target: self, action: #selector(sceneViewPannedTwoFingers))
    sceneView.addGestureRecognizer(twoFingerPanRecognizer)


func sceneViewPannedTwoFingers(sender: UIPanGestureRecognizer) {
    print("two finger pan!!!")
}


func sceneViewPannedOneFinger(sender: UIPanGestureRecognizer) {
    print("one finger pan!!!")
}