可变参数以及不可变集合

可变参数:

格式:

java 复制代码
public class ArgsDemo {
    public static void main(String[] args) {

        System.out.println(getSum(1,2,3,4,5));
    }

    //可变参数
    public static int getSum(int...args){
        int sum = 0;
        for (int arg : args) {
            sum += arg;
        }
        return sum;
    }
}

可变参数的形参中只能写一个可变参数

Collections集合类

java.util.Collections:是集合工具类

作用:Collections不是集合,而是集合工具类

常用API:

图来自黑马程序员网课

java 复制代码
package com.lazyGirl.collectionsdemo;

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

public class Demo1 {
    public static void main(String[] args) {

        ArrayList<String> list = new ArrayList<>();
        Collections.addAll(list,"abc","bcd","quen");
        System.out.println(list);

        Collections.shuffle(list);
        System.out.println(list);

        
    }
}

输出:

java 复制代码
package com.lazyGirl.collectionsdemo;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;

public class Demo2 {
    public static void main(String[] args) {

        ArrayList<String> list = new ArrayList<>();

        Collections.addAll(list, "a", "b", "c");


        ArrayList<String> list1 = new ArrayList<>();
        Random rand = new Random();

        for (int i = 0; i < 10; i++) {
            int count = list.size();
            for (int j = 0; j < count; j++) {
                int index = rand.nextInt(list.size());
                String name = list.remove(index);
                list1.add(name);
                System.out.println(name);
            }

            list.addAll(list1);
            list1.clear();
        }


    }
}

不可变集合

应用场景:

不想让别人修改集合中的内容

书写格式:

图来自黑马程序员网课

java 复制代码
package com.lazyGirl.immytable;

import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class Demo1 {
    public static void main(String[] args) {
        List<String> list = List.of("zs","ls","ww","zl");
//        System.out.println(list.get(0));

        for (String s : list) {
            System.out.println(s);
        }

//        System.out.println(list.remove("zs"));
//        System.out.println(list.add("aaa"));

        Set<String> set = Set.of("zs","ls","ww","zl");//保证元素唯一
        for (String s : set) {
            System.out.println(s);
        }
        System.out.println("----");
//        System.out.println(set.add("aaa"));

        //键值对数量小于10
        Map<String,String> map1 = Map.of("a","b","c","d","e","f");
        for (String s : map1.keySet()) {
            System.out.println(s + " " + map1.get(s));
        }
        System.out.println("----");

        Map<String,String> map2 = Map.copyOf(map1);
//        System.out.println(map2);
//        map2.put("e","u");


    }
}

方法细节:

List:直接用

Set:元素不能重复

Map:元素不能重复,键值对数量最多为10个,超过10个用ofEntryies方法;或者Jdk>10 使用copyOf方法

相关推荐
QQ_216962909611 分钟前
【源码编号:project79475】SpringBoot校内二手交易平台:商品发布、分类检索、留言交流、订单管理全流程实战
java·spring boot·后端
吃好睡好便好1 小时前
查找函数的使用
学习·算法·matlab·生活·查找函数
学习星球1 小时前
单调栈——从“找下一个更大的“到柱状图中的最大矩形
数据库·c++·算法·leetcode·xcode
前端 贾公子1 小时前
第09章:上下文与记忆 (2)
java·服务器·前端
2601_962203511 小时前
Java进阶07集合(续)
java·开发语言
郑州光合科技余经理2 小时前
本地生活服务系统:模块边界与结算字段怎么拆
java·开发语言·前端·后端·系统架构·uni-app·php
专注仿真2 小时前
Spring AI 实现智能对话系统项目指南
数据结构·spring·机器学习
roman_日积跬步-终至千里2 小时前
【数据治理(6)】DataOps 不是调度工具,而是让数据产品长期可信的运行机制
java·服务器·网络
靠沿2 小时前
贪心算法专题(二)
算法·贪心算法
落魄大学生之流水线上谋生计2 小时前
LangGraph 基本用法指南
java·windows·python·langchain