API
概述
API(Application Programming Interface),應用程式編程介面,
Java API是一本程式員的 字典 ,是JDK中提供給我們使用的類的說明檔案,
這些類將底層的代碼實作封裝了起來,我們不需要關心這些類是如何實作的,只需要學習這些類如何使用即可,
所以我們可以通過查詢API的方式,來學習Java提供的類,并得知如何使用它們,
離線API檔案下載 提取碼:uitw
API 使用步驟
- 打開幫助檔案,
- 點擊顯示,找到索引,看到輸入框,
- 你要找誰?在輸入框里輸入,然后回車,
- 看包,java.lang下的類不需要導包,其他需要,
- 看類的解釋和說明,
- 學習構造方法,
參考型別使用步驟
- 導包
- 創建物件
- 呼叫方法
匿名物件
創建物件的標準格式
類名稱 物件名 = 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 陣列中, |
基本使用
-
導包
import java.util.Random -
創建物件
Random r = new Random(); -
使用
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 實體的容量調整為串列的當前大小 |
注意事項
- 養成面向介面編程的思維,ArrayList是List的實作類,即可以寫成
List list = new ArrayList();
父類參考指向子類物件,便于后期維護,可參考面向物件知識的多型

-
如果使用
<E>泛型,不能指定八大基本資料型別,而是指定它們對應的封裝類基本型別 封裝類 int Integer char Character byte Byte short Short long Long float Float double Double boolean Boolean
練習
-
生成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"); } } } -
自定義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()); } } } -
自定義格式列印集合的方法,傳參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) + "@"); } } } } -
用一個大集合存入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; } }
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/177276.html
標籤:Java
上一篇:Java - IO - 字符流
