集合-06

举报
kwan的解忧杂货铺 发表于 2024/05/27 22:16:06 2024/05/27
【摘要】 六.不可变集合 1.unmodifiableCollectionunmodifiableCollection()方法的功能:返回的 collection 是不可修改的视图unmodifiableCollection()方法语法:#参数说明:#co:设置不可修改视图的对象public static List unmodifiableCollection(Collection co)注意事项:...

六.不可变集合

1.unmodifiableCollection

unmodifiableCollection()方法的功能:返回的 collection 是不可修改的视图

unmodifiableCollection()方法语法:

#参数说明:
#co:设置不可修改视图的对象
public static List unmodifiableCollection(Collection co)

注意事项:

  • unmodifiableCollection()方法在 java.util 包中可用
  • unmodifiableCollection()方法用于获取给定的不可修改视图
  • unmodifiableCollection()方法是一个静态方法,可以通过类名进行访问,如果我们尝试使用类对象访问该方法,那么我们也不会收到任何错误
  • unmodifiableCollection()方法在修改给定集合时可能会引发异常
  • UnsupportedOperationException:当我们尝试修改给定的集合时,可能会抛出此异常
@Slf4j
public class Basic_25_unmodifiable {
    public static void main(String[] args) {
        //实例化链接列表对象
        List<Integer> list = new LinkedList();
        //通过使用add()方法是添加
        //链表中的对象
        list.add(88);
        list.add(99);
        list.add(22);
        list.add(123);
        list.add(2322);
        //显示链接列表
        System.out.println("LinkedList: " + list);
        //通过使用unmodifiableCollection()方法是
        list = (List<Integer>) Collections.unmodifiableCollection(list);
        list.add(888);/*此处会发生异常*/
    }
}

2.unmodifiableSet

public class Basic_01_unmodifiable {
    public static void main(String[] args) {
        //实例化链接列表对象
        Set<Integer> list = new HashSet<>();
        //通过使用add()方法是添加
        //链表中的对象
        list.add(88);
        list.add(99);
        list.add(22);
        list.add(123);
        list.add(2322);
        //显示链接列表
        System.out.println("LinkedList: " + list);
        //通过使用unmodifiableCollection()方法是
        list = (Set<Integer>) Collections.unmodifiableSet(list);
        list.add(888);/*此处会发生异常*/
    }
}

3.unmodifiableNavigableSet

此方法将返回给定 Navigable 集的不可修改视图。

用法

public static <T> NavigableSet<T> unmodifiableSortedSet(SortedSet<T> data)

其中,数据是在不可修改的视图中返回的可导航集。

public class Basic_03_unmodifiableNavigableSet {
    public static void main(String[] args) {
        //实例化链接列表对象
        NavigableSet<Integer> set = new TreeSet<>();
        //通过使用add()方法是添加
        //链表中的对象
        set.add(88);
        set.add(99);
        set.add(22);
        set.add(123);
        set.add(2322);
        //显示链接列表
        System.out.println("LinkedList: " + set);
        set = Collections.unmodifiableNavigableSet(set);
        set.add(888);/*此处会发生异常*/
    }
}

4.unmodifiableMap

public class Basic_04_unmodifiableMap {
    public static void main(String[] args) {
        //实例化链接列表对象
        Map<Integer, Integer> map = new HashMap<>();
        //通过使用add()方法是添加
        //链表中的对象
        map.put(2, 88);
        map.put(1, 99);
        map.put(1, 22);
        map.put(1, 123);
        map.put(1, 2322);
        //显示链接列表
        System.out.println("HashMap: " + map);
        map = Collections.unmodifiableMap(map);
        map.put(888, 888);/*此处会发生异常*/
    }
}

5.unmodifiableNavigableMap

public class Basic_05_unmodifiableNavigableMap {
    public static void main(String[] args) {
        //实例化链接列表对象
        NavigableMap<Integer, Integer> map = new TreeMap<>();
        //通过使用add()方法是添加
        //链表中的对象
        map.put(2, 88);
        map.put(1, 99);
        map.put(1, 22);
        map.put(1, 123);
        map.put(1, 2322);
        //显示链接列表
        System.out.println("HashMap: " + map);
        map = Collections.unmodifiableNavigableMap(map);
        map.put(888, 888);/*此处会发生异常*/
    }
}
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。