java-JSON:数组和比较

我有一组JSON数组:

listSession: [h0y78u93, h0y78u93, h0y78u93, h0y78u93, h0y78u93, 9i88u93, 9i88u93, 9i88u93, 9i88u93, 9i88u93]

我使用以下代码创建了数组:

ArrayList<String> listSession = new ArrayList<String>(); 
            for(int u=1; u < k+1; u++) {
                String str = Integer.toString(u);

                JSONArray arrTime=(JSONArray)mergedJSON2.get(str);
                JSONObject objSession;
                StringsessionName;
                for (Object ro : arrTime) {

                    objSession = (JSONObject) ro;
                    sessionName = String.valueOf(objSession.get("sessionID"));

                    listSession.add(sessionName);
                }
            }

关于我如何比较列表中每个属性的值,我可以征询您的意见或意见.如果相同,我应该将其设为1.
从以上示例中可以看出,计数应该只有两个,而不是十个.

谢谢.

解决方法:

您可以使用Arraylist.contains()方法,如下所示:

ArrayList<String> listSession = new ArrayList<String>(); 
for(int u=1; u < k+1; u++) {
    String str = Integer.toString(u);

    JSONArray arrTime=(JSONArray)mergedJSON2.get(str);
    JSONObject objSession;
    StringsessionName;
    for (Object ro : arrTime) {

        objSession = (JSONObject) ro;
        sessionName = String.valueOf(objSession.get("sessionID"));

        if (!listSession.contains(sessionName)) {
            listSession.add(sessionName);
        }
    }
}

要么

您可以使用不允许重复值的Set实现代替ArrayList.无需进行显式比较.

// initialize
Set sessionsSet = new HashSet(); 
//add like below
sessionsSet.add(sessionName);
sessionsSet.size() // getting the length which should be what you expect to be 2
上一篇:前端基础 & 初识CSS


下一篇:CF 599 div2 A - A pile of stones