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