import java.util.Collections; import java.util.List; import java.text.DateFormatSymbols; import java.util.LinkedList; public class SearchCollections { public static void main(String[] args) { List list = new LinkedList(); /** * DateFormatSymbols 是一个公共类,用于封装可本地化的日期-时间格式化数据, * 如月名、星期几的名称和时区数据。DateFormat 和 SimpleDateFormat * 都使用 DateFormatSymbols 封装此信息。 Sysmbols:符号,标记 * 通过从默认语言环境资源加载格式数据,构造一个 DateFormatSymbols 对象。 */ DateFormatSymbols dfs = new DateFormatSymbols(); String[] months = dfs.getMonths();//拿到月份 for(int i = 0; i < months.length; i++){ String month = months[i]; list.add(month); } Collections.sort(list);//这里如果不排序,顺序是对的,sort后出出现下面的结果! System.out.println("月份的名字:" + list); /** * 月份的名字:[, 一月, 七月, 三月, 九月, 二月, 五月, 八月, 六月, 十一月, 十二月, 十月, 四月] * 发现它的位置在:10 * 月份 = 十二月 */ int index = Collections.binarySearch(list, "十二月");//用二分法查找list里面'十二月' if(index>0){ System.out.println("发现它的位置在:"+index); String month = (String)list.get(index);//list.get()方法:返回列表中指定位置的元素。 System.out.println("月份 = "+month); } } }