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());
		}
	}


你可能感兴趣的:(Collections类)