class ReportCatalogueIndexCommandParser {
final String NO_GROUPING = "orgNoGrouping";
static final int ORG_CATALOG = 0;
static final int PART_CATALOG = 1;
int getGroupingType(String grouping) {
Set orgGroupings = new TreeSet();
orgGroupings.add(NO_GROUPING);
orgGroupings.add("orgGroupByCountry");
orgGroupings.add("orgGroupByTypeOfOrgName");
if (orgGroupings.contains(grouping)) {
return ORG_CATALOG;
}
if (grouping.equals("part")) {
return PART_CATALOG;
} else
throw new IllegalArgumentException("Invalid grouping!");
}
}上面这个是用SET的集合来装下面没有用集合装直接做判断class ReportCatalogueIndexCommandParser {
static String NO_GROUPING = "orgNoGrouping";
static final int ORG_CATALOG = 0;
static final int PART_CATALOG = 1; public int getGroupingType(String grouping) {
if (grouping.equals(NO_GROUPING)||grouping.equals("orgGroupByCountry")||grouping.equals("orgGroupByTypeOfOrgName")) {
return ORG_CATALOG;
} else if (grouping.equals("part")) {
return PART_CATALOG;
} else
throw new IllegalArgumentException("Invalid grouping!");
}}想问的是如果数据量很大的话,哪种效率高,代码的效率问题,在编程中的一些好习惯
有谁有这方面的总结或者参考资料,可以暴暴,大家一起分享

解决方案 »

  1.   

    第二个,应该把String做成final的静态常量,然后再使用。
      

  2.   

    去看看set.contains的源码吧。觉得引入set意义不大。
      

  3.   

    Set orgGroupings = new TreeSet();
    orgGroupings.add(NO_GROUPING);
    orgGroupings.add("orgGroupByCountry");
    orgGroupings.add("orgGroupByTypeOfOrgName");
    没看到你这段代码起到什么作用。
      

  4.   


    我估计你没用过set,set翻译成中文集合的意思,数学了的集合有三要素:
    即元素的确定性、互异性(就是不能重复)和无序性,我想你看到互异性应该明白他的
    用途了吧,还有楼主:第二种执行效率高因为从数据本身来说,少了对数据的一层封装,少了封装,因此也就少了
    解析。。从根源来说虚拟机拿到数据直接编译原始数据,而不是经过封装后的数据。。可想而知。。
      

  5.   

    应该是第二个吧,不过总的来说,都差不多。
    还有一个更好的方法,将你的set作为静态变量放到方法的外面
    因为你set的三个添加方法都和和这个方法的参数没关系。