存储列表中的值,然后使用集合对它们进行排序不起作用

时间:2015-10-29 11:59:00

标签: java list sorting collections

我尝试使用变量' optionsList'将字符串值存储在列表中。但它会抛出NullPointer异常。可以请一些人帮我解决这个问题。

以下是代码:

public static void CheckOptionsPresent(String s1)抛出异常       {                尝试{

           List optionsList = null;

           webDriver.findElement(By.cssSelector("article.ContactInfo.active div.half-left.contactInfo div.idProvinceOfIssuance button")));

           webDriver.findElement(By.cssSelector("article.ContactInfo.active div.half-left.contactInfo div.idProvinceOfIssuance button")).click();

           List<WebElement> list = webDriver.findElements(By.cssSelector("article.ContactInfo.active div.half-left.contactInfo div.idProvinceOfIssuance div ul li"));

           int listcount = list.size();           
           System.out.println(listcount);
           String options[]=new String[listcount];


           for (int i=3; i<=listcount; i++ )
           {

           options[i-3] = webDriver.findElement(By.cssSelector("article.ContactInfo.active div.half-left.contactInfo div.idProvinceOfIssuance div ul li:nth-child("+i+") a span")).getText();
           System.out.println(options[i-3]);
                   webDriver.findElement(By.cssSelector("article.ContactInfo.active div.half-left.contactInfo div.idProvinceOfIssuance div ul li:nth-child("+i+") a span")));

           optionsList = Arrays.asList(options);

           }

           System.out.println(optionsList);

           optionsList.removeAll(Collections.singleton(null));


           Collections.sort(optionsList);


           System.out.println("Sorted List:" + optionsList);

}

2 个答案:

答案 0 :(得分:1)

这是String的列表。您应该使用Collections.sort(optionsList,String.CASE_INSENSITIVE_ORDER)

答案 1 :(得分:0)

以下是您的简化版本,以下工作正常。

  public static void main(String[] args) {
        List optionsList = null;
        String options[] = new String[3];// listcount];
        options[0] = "cat";
        options[1] = "dog";
        options[2] = "alpha";
        optionsList = Arrays.asList(options);
        System.out.println(optionsList);
        optionsList.removeAll(Collections.singleton(null));
        Collections.sort(optionsList);
        System.out.println("Sorted List:" + optionsList);

    }

我认为问题在于您正在阅读选项[]的值。

尝试缩小问题范围我很确定它会起作用。