常用API - Scanner、Random、ArrayList

来源:https://www.cnblogs.com/1101-/archive/2020/05/31/13019660.html
-Advertisement-
Play Games

API 概述 API(Application Programming Interface),應用程式編程介面。 Java API是一本程式員的 字典 ,是JDK中提供給我們使用的類的說明文檔。 這些類將底層的代碼實現封裝了起來,我們不需要關心這些類是如何實現的,只需要學習這些類如何使用即可。 所以我 ...


API

概述

API(Application Programming Interface),應用程式編程介面。

Java API是一本程式員的 字典 ,是JDK中提供給我們使用的類的說明文檔。

這些類將底層的代碼實現封裝了起來,我們不需要關心這些類是如何實現的,只需要學習這些類如何使用即可。

所以我們可以通過查詢API的方式,來學習Java提供的類,並得知如何使用它們。

離線API文檔下載 提取碼:uitw

API 使用步驟

  1. 打開幫助文檔。
  2. 點擊顯示,找到索引,看到輸入框。
  3. 你要找誰?在輸入框里輸入,然後回車。
  4. 看包。java.lang下的類不需要導包,其他需要。
  5. 看類的解釋和說明。
  6. 學習構造方法。

引用類型使用步驟

  • 導包
  • 創建對象
  • 調用方法

匿名對象

創建對象的標準格式

類名稱 對象名 = new 類名稱();

匿名對象就是只有右邊的對象,沒有左邊的名字和賦值運算符

new 類名稱();
new 類名稱().屬性;
new 類名稱().方法;

匿名對象只能使用唯一的一次!!

  • 可以當實參傳給方法
  • 也可以作為返回值

Scanner類

Scanner類在基礎語法發過了,傳送門

Random類

概述

此類的實例用於生成偽隨機數流。

如果用相同的種子創建兩個 Random 實例,則對每個實例進行相同的方法調用序列,它們將生成並返回相同的數字序列。

Random 類實現的演算法使用一個 protected 實用工具方法,每次調用它最多可提供 32 個偽隨機生成的位。

很多應用程式會發現 Math.random() 方法更易於使用。

構造方法

構造方法 說明
Random() 創建一個新的隨機數生成器。
Random(long seed) 使用單個 long 種子創建一個新的隨機數生成器。

常用方法

方法摘要 描述
protected int next(int bits) 生成下一個偽隨機數。
int nextInt() 返回下一個偽隨機數,它是此隨機數生成器的序列中均勻分佈的 int 值。
int nextInt(int n) 返回一個偽隨機數,它是取自此隨機數生成器序列的、在 0(包括)和指定值(不包括)之間均勻分佈的 int 值。
long nextLong() 返回下一個偽隨機數,它是取自此隨機數生成器序列的均勻分佈的 long 值。
float nextFloat() 返回下一個偽隨機數,它是取自此隨機數生成器序列的、在 0.0 和 1.0 之間均勻分佈的 float 值。
double nextDouble() 返回下一個偽隨機數,它是取自此隨機數生成器序列的、在 0.0 和 1.0 之間均勻分佈的 double 值。
boolean nextBoolean() 返回下一個偽隨機數,它是取自此隨機數生成器序列的均勻分佈的 boolean 值。
void setSeed(long seed) 使用單個 long 種子設置此隨機數生成器的種子。
double nextGaussian() 返回下一個偽隨機數,它是取自此隨機數生成器序列的、呈高斯(“正態”)分佈的 double 值,其平均值是 0.0,標準差是 1.0。
void nextBytes(byte[] bytes) 生成隨機位元組並將其置於用戶提供的 byte 數組中。

基本使用

  1. 導包

    import java.util.Random
    
  2. 創建對象

    Random r = new Random();
    
  3. 使用

    r.nextInt();
    

簡單使用

package com;

import java.util.Random;
import java.util.Scanner;

public class RandomTest {
    public static void main(String[] args) {
//        base();
//        bound();
//        exercise1();
        exercise2();

    }

    public static void base() {
        Random r = new Random();
        int i = r.nextInt();
        // 不帶參數將產生整數範圍內的隨機數 (正負21億多)
        System.out.println(i);
    }

    public static void bound() {
        Random r = new Random();
        int i = r.nextInt(10);
        // 帶參數將產生[0,10) 即0~9的隨機數
        System.out.println(i);
    }

    public static void exercise1() {
        // 生成1-n 的隨機數
        Random r = new Random();
        // 0~9的隨機數整體+1 就成了1~10
        int i = r.nextInt(10) + 1;
        System.out.println(i);
    }


    public static void exercise2() {
        // 猜大小
        Scanner sc = new Scanner(System.in);
        Random r = new Random();
        // 範圍0-100
        int target = r.nextInt(101);
        int num = -1;
        // System.out.println("答案"+target);

        do {
            System.out.print("請輸入一個數:");
            num = sc.nextInt();
            if (num > target) {
                System.out.println("太大了");
            } else if (num < target) {
                System.out.println("太小了");
            } else {
                System.out.println("猜對了!");
            }
        } while (num != target);
    }
}

ArrayList類

之前學習數組時,發現一個缺點!

數組一旦創建,就無法改變數組的長度。

概述

java.util.ArrayList大小可變的數組的實現

對於ArrayList來說,有一個尖括弧代表泛型,泛型就是裝在集合中的所有元素,必須是同一種類型。

註意:泛型只能是引用類型,不能是基本類型

構造方法

構造方法 說明
ArrayList() 構造一個初始容量為 10 的空列表。
ArrayList(Collection <? extends E> c) 構造一個包含指定 collection 的元素的列表,
這些元素是按照該 collection 的迭代器返回它們的順序排列的。
ArrayList(int initialCapacity) 構造一個具有指定初始容量的空列表

常用方法

方法摘要 描述
int size() 返回此列表中的元素數。
boolean add(E e) 將指定的元素添加到此列表的尾部
void add(int index, E element) 將指定的元素插入此列表中的指定位置
E remove(int index) 移除此列表中指定位置上的元素。
boolean remove(Object o) 移除此列表中首次出現的指定元素(如果存在)。
void clear() 移除此列表中的所有元素。
E get(int index) 返回此列表中指定位置上的元素。
boolean contains(Object o) 如果此列表中包含指定的元素,則返回 true。
int indexOf(Object o) 返回此列表中首次出現的指定元素的索引,或如果此列表不包含元素,則返回 -1。
int lastIndexOf(Object o) 返回此列表中最後一次出現的指定元素的索引,或如果此列表不包含索引,則返回 -1
Object clone() 返回此 ArrayList 實例的淺表副本。
boolean isEmpty() 如果此列表中沒有元素,則返回 true
boolean addAll(Collection<? extends E> c) 按照指定 collection 的迭代器所返回的元素順序,將該 collection 中的所有元素添加到此列表的尾部。
boolean addAll(int index, Collection<? extends E> c) 從指定的位置開始,將指定 collection 中的所有元素插入到此列表中。
void ensureCapacity(int minCapacity) 如有必要,增加此 ArrayList 實例的容量,以確保它至少能夠容納最小容量參數所指定的元素數。
protected void removeRange(int fromIndex, int toIndex) 移除列表中索引在 fromIndex(包括)和 toIndex(不包括)之間的所有元素。
E set(int index, E element) 用指定的元素替代此列表中指定位置上的元素。
Object[] toArray() 按適當順序(從第一個到最後一個元素)返回包含此列表中所有元素的數組。
<T> T[] toArray(T[] a) 按適當順序(從第一個到最後一個元素)返回包含此列表中所有元素的數組;返回數組的運行時類型是指定數組的運行時類型。
void trimToSize() 將此 ArrayList 實例的容量調整為列表的當前大小

註意事項

  1. 養成面向介面編程的思維,ArrayList是List的實現類,即可以寫成List list = new ArrayList();

父類引用指向子類對象,便於後期維護。可參考面向對象知識的多態

image-20200523105025469

  1. 如果使用<E>泛型,不能指定八大基本數據類型,而是指定它們對應的封裝類

    基本類型 封裝類
    int Integer
    char Character
    byte Byte
    short Short
    long Long
    float Float
    double Double
    boolean Boolean

練習

  1. 生成6個1-33的隨機數,添加到集合,並遍歷集合

    package com;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Random;
    
    public class ArrayListExercise {
        public static void main(String[] args) {
    
            exercise1();
    
        }
    
        public static void exercise1() {
            List<Integer> list = new ArrayList<>();
            Random r = new Random();
            final int N = 6;
            for (int i = 0; i < N; i++) {
                int num = r.nextInt(33) + 1;
                list.add(num);
            }
    
            for (int i = 0; i < list.size(); i++) {
                System.out.print(list.get(i) + "\t");
            }
            System.out.println();
            for (Integer i : list) {
                System.out.print(i + "\t");
            }
        }
    }
    
    
  2. 自定義4個學生對象,添加到集合,並遍歷集合

    package com;
    
    public class Person {
        private String name;
        private int age;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public Person() {
        }
    
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
    }
    
    
    package com;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Random;
    
    public class ArrayListExercise {
        public static void main(String[] args) {
            exercise2();
    
        }
    
        public static void exercise2() {
            List<Person> list = new ArrayList<>();
            list.add(new Person("小明", 5));
            list.add(new Person("小紅", 6));
            list.add(new Person("小王", 7));
            list.add(new Person("小麗", 8));
            for (Person person : list) {
                System.out.println("名字:"+person.getName() + " 年齡:"+person.getAge());
            }
        }
    
    }
    
    
  3. 自定義格式列印集合的方法,傳參ArrayList,列印: {元素1@元素2@...@元素n}

    package com;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Random;
    
    public class ArrayListExercise {
        public static void main(String[] args) {
            exercise3();
    
        }
    
        public static void exercise3() {
            List<String> list = new ArrayList<>();
            list.add("張三");
            list.add("李四");
            list.add("王五");
            display((ArrayList) list);
        }
    
        public static void display(ArrayList list) {
            for (int i = 0; i < list.size(); i++) {
                if (i == 0) {
                    System.out.print("{"+list.get(i)+"@");
                } else if (i == list.size()-1) {
                    System.out.print(list.get(i) + "}");
                } else {
                    System.out.print(list.get(i) + "@");
                }
            }
        }
    
    }
    
    
  4. 用一個大集合存入20個隨機數,然後篩選其中的偶數元素,存入小集合中,要求自定義方法篩選。

    package com;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Random;
    
    public class ArrayListExercise {
        public static void main(String[] args) {
            exercise4();
    
        }
        public static void exercise4() {
            List<Integer> list = new ArrayList<>();
            Random r = new Random();
            final int N = 20;
            for (int i = 0; i < N; i++) {
                int num = r.nextInt(100) + 1;
                list.add(num);
            }
    
            for (Integer i : list) {
                System.out.print(i + "\t");
            }
    
            List<Integer> small = filter(list);
            System.out.println();
            for (Integer i : small) {
                System.out.print(i + "\t");
            }
        }
    
        public static List<Integer> filter(List<Integer> list) {
            List<Integer> result = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                if (list.get(i) % 2 == 0) {
                    result.add(list.get(i));
                }
            }
            return result;
        }
    }
    
    

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言 本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。 作者:費弗里 1. 簡介 Kepler.gl相信很多人都聽說過,作為Uber幾年前開源的互動式地理信息可視化工具,kepler.gl依托WebGL強大的圖形渲染能力,可以在瀏 ...
  • 15.模塊-包-庫 15.1 基本概念 隨著代碼量的不斷增多,一個文件里代碼會越來越長,也不容易維護。為瞭解決這種問題,我們會進行拆分,並將具備類似的功能放同一文件中。這樣每個文件包含的代碼就相對較少。在Python中一個.py文件就稱之為一個模塊,英文叫(module) 使用模塊的好處如下所示: ...
  • 14.異常處理 只要是人編寫的代碼,或多或少都會存在一些Bug,當這些Bug被程式捕捉之後,需要怎麼處理,就需要我們告訴代碼應該處理,通常稱之為異常處理。 14.1 什麼是異常 Python使用異常對象來表示異常狀態,併在遇到錯誤進引發異常,異常對象被捕捉到未處理,程式則會終止並顯示相應的錯誤信息, ...
  • 冒泡排序是一種簡單的排序演算法。 1 #pragma once 2 #include <iostream> 3 #include <assert.h> 4 using std::cout; 5 using std::endl; 6 template <typename T> void Swap(T & ...
  • Java生鮮電商平臺-生鮮電商中配送訂單解決方案(小程式/APP) 說明:在日常的生鮮電商平臺中,生鮮配送是一個不可獲取的環節,根據實際的業務場景,生鮮配送有兩個維度需要考慮 1. 時間維度。 說明:時間維度是指客戶一般什麼時候要,就是什麼時候配送的問題,如果是前置倉模式,那麼就需要29分必送達,如 ...
  • 註釋是為了使別人能看懂你寫的程式,也為了使你在若幹年後還能看得懂你曾經寫的程式而設定的。 註釋是寫給程式員看的,不是寫給電腦看的。所以註釋的內容,C語言編譯器在編譯時會被自動忽略,不會執行註釋的代碼! 方法一:使用// #include "stdafx.h" //main函數 :程式的入口函數,就好 ...
  • 有很多剛學習軟體測試的小伙伴,都會在網路上找尋各種學習資料,去提升自己的專業技能水平。因此,我決定定期分享我整理收集的一些軟體測試的測試工具下載、面試寶典、視頻教學合集。都整理好了,有需要的可以關註我(獲取方式在文末) 軟體測試的學習,不止是基礎理論,還需要學習測試工具的用法,如介面工具Postma ...
  • 女程式員是這麼徵婚的: SELECT * FROM 男人們 WHERE 未婚=true and 同性戀=false and 有房=true and 有車=true and 條件 in (帥氣,紳士,大度,氣質,智慧,溫柔,體貼,會浪漫,活潑,可愛,最好還能帶孩子) and 年齡 between(24 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...