我的账户
啄木鸟学院

专注软件测试菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

java-樊江飞-2021.3.11

[复制链接]
皮皮虾学员认证 发表于 2021-3-11 20:00:28 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
package day05;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/*
Collections:集合的工具类,提供了方法,操作LIst、Set、Map
*/
public class Demo05 {
    public static void main(String[] args) {
        List<Integer>nums = Arrays.asList(60,70,80,90,40,20,10);
        System.out.println(Collections.max(nums));
        System.out.println(Collections.min(nums));

        System.out.println(nums);
        Collections.sort(nums);//排序,从小到达排序
        System.out.println(nums);

        //二分查找,查不到返回 -(插入点+1)
        int index = Collections.binarySearch(nums,30);
        System.out.println(index);
        //查到返回索引
        index = Collections.binarySearch(nums,40);
        System.out.println(index);

        //翻转列表
        Collections.reverse(nums);
        System.out.println(nums);
        //将列表乱序
        Collections.shuffle(nums);
        System.out.println(nums);
    }
}
package day05;

import java.util.HashMap;
import java.util.Map;

/*
Map:HashMap/TreeMap是典型的实现类。key-value,key不允许重复,是用Set来存放的。
*/
public class Demo04 {
    public static void main(String[] args) {
        //<String,String>分别是key,value的类型
        Map<String,String> map = new HashMap<>();

        //添加元素
        map.put("CNY","人民币");
        map.put("USD","美元");
        map.put("JPY","日元");
        map.put("GBP","英镑");

        System.out.println(map);

        //修改元素
        map.put("CNY","Chinese Yuan");

        //删除元素remove,根据key删除,返回key对应的value
        System.out.println(map.remove("JPY"));
        //查询key是否存在,containsKey
        System.out.println(map.containsKey("JPY"));
        //查询value是否存在,containsValue
        System.out.println(map.containsValue("日元"));
        //根据key取元素,get
        System.out.println(map.get("CNY"));
        System.out.println(map.get("aaa")); //不存在返回null


        //统计字符串中每个字符出现多少次。
        String str = "This is a test.Today is a nice day.";
        str = "HelloHi";          //str缩短有利于观察。
        Map<Character,Integer> m = new HashMap<>();
        //遍历每个字符
        for (int i=0;i<str.length();i++){
            //根据索引,取字符串中每个字符
            char ch =str.charAt(i);
            System.out.println("第"+i+"个字符为:"+ch);
            //判断字符在Map中是否存在
            if (m.get(ch) != null) {
                //如果存在,根据字符取出次数,次数+1后,再放进去
                int count = m.get(ch);
                m.put(ch,count+1);
                System.out.println(ch+"在map中存在,次数增加1.");
            }else {
                //如果不存在,将(字符,1)加入到Map中
                m.put(ch,1);   //T,1
                System.out.println(ch+"不存在,加入到map中,次数设置为1.");
            }
        }
        System.out.println("统计字符个数:"+m);
    }
}
package day05;

import java.awt.geom.Arc2D;

/*
基本类型    包装类
int、      Integer
byte       Byte
short      Short
long       Long
float      Float
double     Double
boolean    Boolean
char       Character
1、提供了一些实用的方法
2、集合中不能存放基本类型的数据,只能放引用类型,比如要存放数字,只能用Integer,不能用int
*/
public class Demo01 {
    public static void main(String[] args) {
        Integer num = 10;
        int a = 10;
        //valueof 把字符串转成Integer类型,radix表示字符串中的数字是几进制。
        System.out.println(Integer.valueOf("1001",10));
        System.out.println(Integer.valueOf("1001",8));

        //二进制、八进制、十进制、十六进制、三十六进制(最大)
        //十六进制:0-9,A-F来组成
        //三十六进制:0-9,A-Z来组成
        Integer num1 = 0b1101; //二进制,0b开头
        Integer num2 = 0123;   //八进制,0开头
        Integer num3 = 0xfff;  //十六进制,0x开头

        //转二进制
        System.out.println(Integer.toBinaryString(100));
        System.out.println(Integer.toBinaryString(0xFFFF));
        System.out.println(Integer.toBinaryString(Integer.valueOf("1001",5)));
        //转八进制
        System.out.println(Integer.toOctalString(100));
        //转十六进制
        System.out.println(Integer.toHexString(100));
        System.out.println("============================");
        //设计用例,测试这个方法。(边界值、等价类、异常值)
        System.out.println( "用例1:" + oct2dec(""));//异常:长度为0
        System.out.println( "用例2:" + oct2dec("7")); //长度为1
        System.out.println( "用例3:" + oct2dec("123456"));  //长度为6
        System.out.println( "用例4:" + oct2dec("1234567")); //异常:长度为7
        System.out.println( "用例5:" + oct2dec("0")); //最小值
        System.out.println( "用例6:" + oct2dec("777777"));//最大值
        System.out.println( "用例7:" + oct2dec("8a"));// 异常:非法的八进制
        System.out.println( "用例8:" + oct2dec("+54"));//正数
        System.out.println( "用例9:" + oct2dec("-5465"));//负数
        System.out.println( "用例10:" + oct2dec(null));//异常:空值

        Float f = 10.5f;// 直接赋对应类型的值
        Float f1 = new Float(10.1);//调用构造方法,不推荐使用
        System.out.println(Float.valueOf("123")); //字符转换float
        System.out.println(f1.longValue());//转换long类型

        //拆箱、装箱
        Boolean b = true;//把基本类型的值,直接赋值给对象b,自动装箱。
        boolean b1 = b; //把包装类型的值,赋值给基本类型,自动拆箱。

    }
    /*
    练习:写一个静态方法,实现一个把6位以内的八进制的数字转换成十进制数字。
     */
    public static int oct2dec(String oct) {
        if (oct ==null ){
            System.out.println("参数不合法");
            return -999999999;//错误码
        }
        if (oct.length() < 1 || oct.length() > 6) {
            System.out.println("参数不合法");
            return -999999999;  //错误码
        }
        try {
            return Integer.valueOf(oct, 8);
        } catch (Exception e) {
            System.out.println(e.getMessage());
            return -999999999;
        }
    }
}

回复

使用道具 举报

关注0

粉丝0

帖子25

发布主题
大家都在学
课堂讨论
一周热帖排行最近7x24小时热帖
关注我们
专注软件测试菁英教育

客服电话:17792550360

客服时间:9:00-21:00

卓目鸟学苑 - 专注软件测试菁英教育!( 陕ICP备20001493号-1 )

版权所有 © 西安菁英教育科技有限公司 2023-2026