Collections类

Collections类为集合类的一些工具类。都为静态方法。经常用法例如以下:

	@Test
	public <T> void test() {
		List<String> list = new ArrayList<String>();
		list.add("3");
		list.add("1");
		list.add("6");
		list.add("2");
		list.add("5");

		/**增添“9” **/
		Collections.addAll(list, "9");
		printCollection(list); // 316259

		/** 依据元素的自然顺序 对指定列表按升序进行排序。

**/ Collections.sort(list); /** 用二分查找法查找list的元素的位置(使用之前必须使用sort先进行排序) **/ Collections.binarySearch(list, "6");// 返回6的位置4 /** 继承Comparator接口 ( 假设o1小于o2,返回一个负数;假设o1大于o2,返回一个正数;假设他们相等。则返回0;) **/ Collections.sort(list, new Comparator<String>() { @Override public int compare(String o1, String o2) { // TODO Auto-generated method stub return Integer.parseInt(o2) - Integer.parseInt(o1); // 降序排列 } }); printCollection(list);// 965321 /** * 使用copy复制集合数据时,必须保证新集合中的size大于或等于旧集合中的size(注:ArrayList中的size和容纳量是有差别的。 * 初始化的时候能够初始化其容纳量,可是size一直为 * 0,当进行add时候才会数量加1,为保证size的数量,初始化採取其构造方法,形式例如以下:(Arrays.asList(new * String[list.size()])) **/ List<String> list1 = new ArrayList<String>( Arrays.asList(new String[list.size()])); Collections.copy(list1, list); printCollection(list1);// 965321 List<String> list2 = new ArrayList(); /** 假设两个指定 collection 中没有同样的元素,则返回 true。 **/ Collections.disjoint(list, list2);// 返回true /** 用一个元素取代集合中全部元素 **/ Collections.fill(list, "2"); printCollection(list);// 返回222222 /** 元素在集合中出现的次数 **/ Collections.frequency(list, "22"); /** 返回集合中最大的 **/ Collections.max(list1);// 返回9 /** 集合中最小的 **/ Collections.min(list1); // 返回1 /** 复制5个參数90成为一个新的集合list3 ,且新的集合不可更改(可初始化一个新创建的 List) **/ List list3 = Collections.nCopies(5, "90"); printCollection(list3);// 返回9090909090 /** * 将list集合中为2的值替换为1, 注:使用 newVal 替换 list 中满足 (oldVal==null ? e==null : * oldVal.equals(e)) 的每一个 e 元素。 **/ Collections.replaceAll(list, "2", "1"); printCollection(list); // 返回111111 /** 随机交换位置 **/ // Collections.shuffle(list1); /** 反转集合位置 **/ Collections.reverse(list1);// 123569 printCollection(list1); // 交换集合的位置,位置1和位置2互调 Collections.swap(list1, 0, 1);// 213569 printCollection(list1); // 总体右移动一位 Collections.rotate(list1, 1); // 921356 printCollection(list1); } public void printCollection(Collection<String> collection) { System.out.println(); Iterator it = (Iterator) collection.iterator(); while (it.hasNext()) { System.out.print(it.next()); } }



posted @ 2016-01-06 08:52  hrhguanli  阅读(228)  评论(0编辑  收藏  举报