Fork me on GitHub

Java从零开始学二十四(集合工具类Collections)

一、Collections简介

在集合的应用开发中,集合的若干接口和若干个子类是最最常使用的,但是在JDK中提供了一种集合操作的工具类 —— Collections,可以直接通过此类方便的操作集合

二、Collections类的常用方法及常量

No.
方法
类型
描述
1
public static final List EMPTY_LIST
常量
返回一个空的List集合
2
public static final Set EMPTY_SET
常量
返回空的Set集合
3
public static final Map EMPTY_MAP
常量
返回空的Map集合
4
public static <T> boolean addAll(Collection<? super T> c, T... a)
普通
为集合添加内容
5
public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll)
普通
找到最大的内容,按比较器排序
根据元素的自然顺序,返回给定集合的最大元素
6
public static <T extends Object & Comparable<? super T>> T min(Collection<? extends T> coll)
普通
找到集合中的最小内容,按比较器排序
根据元素的自然顺序 返回给定集合的最小元素
7
public static <T> boolean replaceAll(List<T> list,T oldVal,T newVal)
普通
用新的内容替换集合的指定内容
使用另一个值替换集合中出现的所有某一指定值
8
public static void reverse(List<?> list)
普通
反转指定List 集合中元素的顺序。
9
public static <T> int binarySearch(List<? extends Comparable<? super T>> list,T key)
普通
查找集合中的指定内容

使用二分查找算法查找指定List 集合,以获得指
定对象的索引位置。

10
public static final <T> List<T> emptyList()
普通
返回一个空的List集合
11
public static final <K,V> Map<K,V> emptyMap()
普通
返回一个空的Map集合
12
public static final <T> Set<T> emptySet()
普通
返回一个空的Set集合
13
public static <T extends Comparable<? super T>> void sort(List<T> list)
普通
集合排序操作,根据Comparable接口进行排序

根据元素的自然顺序 对指定List 集合按升
序进行排序。

14
public static void swap(List<?> list,int i,int j)
普通
交换指定位置的元素

三、将指定List 集合中的元素顺序反转

package com.pb.demo2;

import java.util.Collections;
import java.util.LinkedList;
import java.util.List;

public class CollectionsTest1 {

    public static void main(String[] args) {
       //声明集合并添加元素
        LinkedList<String> list = new LinkedList<String>();
        list.add("one");
        list.add("two");
        list.add("three");
        
        System.out.println("=======正常遍历============");
        for (String s : list) {
            System.out.print(s+"\t");
        }
        System.out.println();
        System.out.println("=======执行reverse方法============");
        Collections.reverse(list);
        for (String s : list) {
            System.out.print(s+"\t");
        }

    }

}

四、sort 方法的作用是对指定List 集合按升序进行排序

package com.pb.demo2;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class CollectionsTest2 {

    public static void main(String[] args) {
        //声明集合并添加集
        List<Integer> list = new ArrayList<Integer>();
        list.add(7);
        list.add(2);
        list.add(5);
        list.add(3);
        list.add(1);
        System.out.println("=======正常遍历============");
        for (Integer i : list) {
            System.out.print(i+"\t");
        }
        
        System.out.println("\n=======执行sort方法============");
        Collections.sort(list);
        for (Integer i : list) {
            System.out.print(i+"\t");
        }
        System.out.println("\n=======执行reverse方法============");
        Collections.reverse(list);
        for (Integer i : list) {
            System.out.print(i+"\t");
        }
    }

}

结果:

=======正常遍历============
7    2    5    3    1    
=======执行sort方法============
1    2    3    5    7    
=======执行reverse方法============
7    5    3    2    1    

五、集合查找、替换的方法

package com.pb.demo2;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class CollectionsTest3 {

    public static void main(String[] args) {
        //声明集合并添加集
        //创建集合
        List<String> list = new ArrayList<String>();
        //增加10 个不同单词
        list.add("this");
        list.add("is");
        list.add("collection");
        list.add("test");
        list.add("and");
        list.add("we");
        list.add("can");
        list.add("learn");
        list.add("how");
        list.add("to");
        System.out.println("=======正常遍历============");
        for (String s : list) {
            System.out.print(s+"\t");
        }
        //打印输出集合中最大元素和最小元素
        System.out.println("\n========打印输出集合中最大元素和最小元素=========");
        String max=Collections.max(list);
        String min=Collections.min(list);
        System.out.println("list集合中的最大值:"+max);
        System.out.println("list集合中的最小值:"+min);
        System.out.println("\n=======执行sort方法============");
        Collections.sort(list);
        for (String s : list) {
            System.out.print(s+"\t");
        }
        //binarySearch使用的前提是要排序才可以使用
        System.out.println("\n=============binarySearch根据内容查找索引================");
        System.out.println("we在list中的索引是:"+Collections.binarySearch(list, "we"));
        System.out.println("=============replaceAll方法================");
        //replaceAll
        Collections.replaceAll(list, "we", "our");
        for (String s : list) {
            System.out.print(s+"\t");
        }
        //swap
        System.out.println("======swap========");
        Collections.swap(list, 0, 9);
        for (String s : list) {
            System.out.print(s+"\t");
        }
        
        
}
}

结果:

=======正常遍历============
this    is    collection    test    and    we    can    learn    how    to    
========打印输出集合中最大元素和最小元素=========
list集合中的最大值:we
list集合中的最小值:and

=======执行sort方法============
and    can    collection    how    is    learn    test    this    to    we    
=============binarySearch根据内容查找索引================
we在list中的索引是:9
=============replaceAll方法================
and    can    collection    how    is    learn    test    this    to    our    ======swap========
our    can    collection    how    is    learn    test    this    to    and    

六、使用Arrays.asList生成集合

package com.pb.demo2;

import java.util.Arrays;
import java.util.List;

public class Test1 {

    public static void main(String[] args) {
        String str="a,b,c,d,e,f";
        List<String> list1=Arrays.asList(str);
        System.out.println("list1的长度:  "+list1.size());
        for (String s : list1) {
            System.out.print(s+"\t");
        }
        System.out.println("\n按逗号分离后生成集合");
        List<String> list2=Arrays.asList(str.split(","));
        System.out.println("list2的长度:  "+list2.size());
       for (String s : list2) {
        System.out.print(s+"\t");
    }
    }

}

结果:

list1的长度:  1
a,b,c,d,e,f    
按逗号分离后生成集合
list2的长度:  6
a    b    c    d    e    f    

 

posted @ 2015-02-26 00:10  森林森  阅读(2171)  评论(0编辑  收藏  举报