Collections 操作集合的工具类

本文介绍Java中Collections工具类的使用方法,包括排序、查询和修改操作等实用功能,并展示了如何通过具体示例实现集合元素的操作。

import java.awt.*;
import java.util.*;
import java.util.List;

/**
 * 操作集合的工具类
 * Java提供了一个操作Set,List和Map 等集合的工具类:Collections。该工具类里提供了大量方法对集合元素进行排序、
 * 查询和修改操作,还提供里对集合对象设置为不可变,对集合对象实现同步控制等方法
 * @author liyongyong
 *
 */


public class TestCollections {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ArrayList list = new ArrayList();
       
        list.add(2);
        list.add(8);
        list.add(1);
        list.add(4);
        Integer intValue = new Integer(5);
       
        /*****************************排序操作*******************************/
        System.out.println(list);        //顺序输出元素
        Collections.reverse(list);        //将list集合元素反转
        System.out.println(list);
        Collections.shuffle(list);        //对list集合元素进行随机排序
        System.out.println(list);
        Collections.swap(list, 1, 3);    //将下标为1,3交换
        System.out.println(list);
        Collections.rotate(list, 2);    //当参数为正数时,将list集合的后n个元素移到前面;否则,把前n个移到后面
        System.out.println(list);
        Collections.sort(list);            //将list集合排序
        System.out.println(list);
       
        /*****************************查找、替换操作*******************************/
        System.out.println(Collections.max(list));    //输出最大元素
        System.out.println(Collections.min(list));    //输出最小元素
//        Collections.fill(list, intValue);            //把集合list全部复制为intValue
//        System.out.println(list);
        Collections.replaceAll(list, 8, 11);        //使用一个11(新值)替换为List对象所有的8(旧值)
        System.out.println(list);
       
        ArrayList list2 = new ArrayList();
        list2.add(2);
        list2.add(4);
        System.out.println(Collections.indexOfSubList(list, list2));    //返回子list2在母list对象中第一次出现的位置索引   
        System.out.println(Collections.frequency(list, intValue));        //返回集合中等于指定对象(intValue)的元素数量       
       
       
        /*****************************同步控制*******************************/
        Collection c = Collections.synchronizedCollection(new ArrayList());
        List list3 = Collections.synchronizedList(new ArrayList());
        Set set = Collections.synchronizedSet(new HashSet());
        Map map = Collections.synchronizedMap(new HashMap());
           
    }
}

Java中的`Collections`工具类主要支持`java.util.Collection`接口及其子接口的实现类,包括但不限于以下几种集合类型: - `List`:有序且允许重复元素的集合,例如`ArrayList`和`LinkedList`。 - `Set`:无序且不允许重复元素的集合,例如`HashSet`和`TreeSet`。 - `Queue`:用于实现队列的数据结构,例如`LinkedList`(它同时也实现了`List`接口)和`PriorityQueue`。 此外,虽然`Map`接口并不直接继承自`Collection`接口,但`Collections`工具类也提供了一些方法来操作`Map`,比如可以通过`Collections.unmodifiableMap()`来获取一个不可修改的`Map`视图。 需要注意的是,某些特定的方法可能要求集合满足额外的条件才能正确执行,比如进行二分查找时要求列表已经按照指定的比较器排序[^3]。 ```java // 示例代码:使用CollectionsList进行排序 import java.util.*; public class Main { public static void main(String[] args) { List<Integer> numbers = new ArrayList<>(Arrays.asList(5, 2, 9, 1, 3)); Collections.sort(numbers); // 对列表进行排序 System.out.println(numbers); // 输出: [1, 2, 3, 5, 9] } } ``` 对于`Map`的操作示例,可以参考以下代码片段: ```java // 示例代码:使用Collections创建不可变的Map import java.util.*; public class Main { public static void main(String[] args) { Map<String, String> originalMap = new HashMap<>(); originalMap.put("key1", "value1"); originalMap.put("key2", "value2"); Map<String, String> unmodifiableMap = Collections.unmodifiableMap(originalMap); // 下面这行会抛出 UnsupportedOperationException // unmodifiableMap.put("key3", "value3"); } } ``` 这些例子展示了如何利用`Collections`工具类提供的方法来简化对不同集合类型的常见操作
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值