使用案例回顾类库相关知识(上) | 带你学《Java语言高级特性》之四十三

简介: 回顾之前学习的类库相关知识,我们已经对其基本概念与简单使用有了一个较为全面的了解,现在让我们一起来结合具体的一些案例巩固一下StringBuffer类和Random类的相关内容吧。

上一篇:使用红黑树实现节点增减的平衡修复 | 带你学《Java语言高级特性》之四十二
回顾之前学习的类库相关知识,我们已经对其基本概念与简单使用有了一个较为全面的了解,现在让我们一起来结合具体的一些案例巩固一下StringBuffer类和Random类的相关内容吧。

【本节目标】
通过阅读本节内容,你将结合相关案例场景进行功能实现,复习StringBuffer类,完成对字符串的各种操作与随机,复习Random类并实现抛硬币的小demo,进一步理解与掌握其使用方法。

StringBuffer使用

类库案例分析一

定义一个StringBuffer类对象,然后通过append()方法向对象添加26个小写字母,要求每次只添加一个,共添加26次,然后按照逆序的方式输出,然后删除前5个字符。

本操作主要是训练StringBuffer类中的处理方法,因为StringBuffer的主要特点是允许修改。

public class JavaAPIDemo {
    public static void main(String[] args) throws Exception{
        StringBuffer buf=new StringBuffer();
        for (int x='a';x<='z';x++){     //直接循环设置
           buf.append((char)x);  //保存字符
        }
        buf.reverse().delete(0,5);   //反转处理
        System.out.println(buf);  //utsrqponmlkjihgfedcba
    }
}

因为StringBuffer的内容是允许修改的,而String内容不允许修改,现在的程序是一个单线程的开发,所以不需要去考虑所谓的并发访问问题。

随机数组

类库案例分析二

利用Random类产生5个1~30之间(包括1和30)的随机整数。

Random产生随机数的操作之中会包含有数字0,所以此时不应该存在有数字0。

import java.util.Arrays;
import java.util.Random;
public class JavaAPIDemo {
    public static void main(String[] args){
        int result [] =NumberFactory.create(5);
        System.out.println(Arrays.toString(result)) ;
    }
}  
class NumberFactory{
    private static Random random = new Random() ;
     /**
     * 通过随机数来生成一个数组的内容,该内容不包括有0
     * @param len 要开辟的数组大小
     * @return 包含有随机数的内容
     */
    public static int [] create(int len) {
        int data [] = new int[len] ;   //开辟新的数组
        int foot = 0;
        while (foot < data.length) {
             int num = random.nextInt(30) ;
             if(num != 0) {
                 data[foot ++]= num ; //保存数据
             }
        }
        return data;
    }
}

执行结果:
[4, 2, 7, 22, 12]

扔硬币

类库案例分析三

编写程序,用0~1之间的随机数来模拟扔硬币实验,统计扔1000次后出现正、反面的次数并输出。

import java.util.Random;
public class JavaAPIDemo {
    public static void main(String[] args){
        Coin coin = new Coin();
        coin.throwCoin(1000);
        System.out.println("正面出现次数:"+ coin.getFront()+"、背面出现次数:"+ coin.getBack()) ;
    }
}
class Coin{     //模拟硬币扔的操作
    private int front ;   //保存正面次数
    private int back ;   //保存背面的次数
    private Random random = new Random();
    /**
     *扔硬币的处理
     * @param num 扔硬币的执行次数
     */
    public void throwCoin(int num) {
        for(int x=0; x < num; x ++) {
           int temp=random.nextInt(2);
           if (temp == 0) {
              this.front ++ ;
           }else {
               this.back ++ ;
           }
        }
     }
     public int getFront() {
         return this.front ;
     }
     public int getBack() {
         return this.back ;
     }
}

执行结果:
正面出现次数:485、背面出现次数:515

想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学

下一篇:使用案例回顾类库相关知识(中) | 带你学《Java语言高级特性》之四十四
更多Java面向对象编程文章查看此处

相关文章
|
1月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
87 4
|
1月前
|
Java
Java语言实现字母大小写转换的方法
Java提供了多种灵活的方法来处理字符串中的字母大小写转换。根据具体需求,可以选择适合的方法来实现。在大多数情况下,使用 String类或 Character类的方法已经足够。但是,在需要更复杂的逻辑或处理非常规字符集时,可以通过字符流或手动遍历字符串来实现更精细的控制。
223 18
|
2月前
|
存储 Java Apache
Java语言操作INI配置文件策略
以上步骤展示了基本策略,在实际项目中可能需要根据具体需求进行调整优化。例如,在多线程环境中操作同一份配置时需要考虑线程安全问题;大型项目可能还需考虑性能问题等等。
167 15
|
3月前
|
算法 Java
Java语言实现链表反转的方法
这种反转方法不需要使用额外的存储空间,因此空间复杂度为,它只需要遍历一次链表,所以时间复杂度为,其中为链表的长度。这使得这种反转链表的方法既高效又实用。
370 0
|
3月前
|
JSON Java API
【干货满满】分享拼多多API接口到手价,用Java语言实现
本方案基于 Java 实现调用拼多多开放平台商品详情 API,通过联盟接口获取商品到手价(含拼团折扣与优惠券),包含签名生成、HTTP 请求及响应解析逻辑,适用于电商比价、导购系统集成。
|
3月前
|
JSON Java API
【干货满满】分享京东API接口到手价,用Java语言实现
本示例使用 Java 调用京东开放平台商品价格及优惠信息 API,通过商品详情和促销接口获取到手价(含优惠券、满减等),包含签名生成、HTTP 请求及响应解析逻辑,适用于比价工具、电商系统集成等场景。
|
3月前
|
JSON Java API
【干货满满】分享淘宝API接口到手价,用Java语言实现
本文介绍了如何使用 Java 调用淘宝开放平台 API 获取商品到手价,涵盖依赖配置、签名生成、HTTP 请求与响应解析等核心实现步骤。
|
4月前
|
安全 Java API
Java 集合高级应用与实战技巧之高效运用方法及实战案例解析
本课程深入讲解Java集合的高级应用与实战技巧,涵盖Stream API、并行处理、Optional类、现代化Map操作、不可变集合、异步处理及高级排序等核心内容,结合丰富示例,助你掌握Java集合的高效运用,提升代码质量与开发效率。
253 0
|
4月前
|
安全 JavaScript Java
java Web 项目完整案例实操指南包含从搭建到部署的详细步骤及热门长尾关键词解析的实操指南
本项目为一个完整的JavaWeb应用案例,采用Spring Boot 3、Vue 3、MySQL、Redis等最新技术栈,涵盖前后端分离架构设计、RESTful API开发、JWT安全认证、Docker容器化部署等内容,适合掌握企业级Web项目全流程开发与部署。
325 0
|
4月前
|
JavaScript Java Go
Go、Node.js、Python、PHP、Java五种语言的直播推流RTMP协议技术实施方案和思路-优雅草卓伊凡
Go、Node.js、Python、PHP、Java五种语言的直播推流RTMP协议技术实施方案和思路-优雅草卓伊凡
324 0