API(Application Programming Interface),應用程序編程接口。html
Java API是一本程序員的 字典
,是JDK中提供給咱們使用的類的說明文檔。java
這些類將底層的代碼實現封裝了起來,咱們不須要關心這些類是如何實現的,只須要學習這些類如何使用便可。程序員
因此咱們能夠經過查詢API的方式,來學習Java提供的類,並得知如何使用它們。算法
離線API文檔下載 提取碼:uitw
編程
建立對象的標準格式api
類名稱 對象名 = new 類名稱();
匿名對象就是隻有右邊的對象,沒有左邊的名字和賦值運算符數組
new 類名稱(); new 類名稱().屬性; new 類名稱().方法;
匿名對象只能使用惟一的一次!!oracle
Scanner類在基礎語法發過了,傳送門
dom
此類的實例用於生成僞隨機數流。工具
若是用相同的種子建立兩個 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); } }
以前學習數組時,發現一個缺點!
數組一旦建立,就沒法改變數組的長度。
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 實例的容量調整爲列表的當前大小 |
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; } }