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();

父类引用指向子类对象,便于后期维护。可参考面向对象知识的多态

  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;
    }
    }

常用API - Scanner、Random、ArrayList的更多相关文章

  1. Java常用API(Scanner类)

    Java常用API( Scanner类)1 1.Scanner类 首先给大家介绍一下什么是JavaAPI API(Application Programming Interface),应用程序编程接口 ...

  2. Java常用API(Scanner,Random)匿名对象

    API:即Application programming Interface,应用编程接口. Java中封装了许许多多的API供用户使用,Scanner与Random便是其中之一,API实际就是类,已 ...

  3. java第3天:Scanner,Random,ArrayList

    第一章:Scanner从入门到放弃 1 API的概述和使用步骤 API简称应用程序编程接口,是JDK给我们提供好的可以直接使用的类和方法,是程序员随手使用的字典. *** 2 Scanner的概述 2 ...

  4. Java常用API(ArrayList类)

    Java常用API(ArrayList类) 我们为什么要使用ArrayList类? 为了更加方便的储存对象,因为使用普通的数组来存储对象太过麻烦了,因为数组的一个很大的弱点就是长度从一开始就固定了,所 ...

  5. List容器——ArrayList及常用API

    List: ①   List容器是有序的collection(也称为序列).此接口的用户可以对List容器中每个元素的插入位置进行精确地控制.用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜 ...

  6. Java常用API(Random类)

    Java常用API(Random类) Random:是一个用于生成随机数的类 构造方法 public Random() :创建一个新的随机数生成器. 返回随机数的方法 public int nextI ...

  7. Java 常用API(二)

    目录 Java 常用API(二) 1. Object类 2. Date类 概述 构造方法和成员方法 3. DateFormat类 概述 SimpleDateFormat类 练习 4. Calendar ...

  8. Java 常用API(一)

    目录 Java 常用API(一) 1. Scanner类 引用类型的一般使用步骤 Scanner的使用步骤 例题 2. 匿名对象 概述 匿名对象作为方法的参数 匿名对象作为方法的返回值 3. Rand ...

  9. Java | 个人总结的Java常用API手册汇总

    目录 常用API JavaAPI 1 java.lang String StringBuilder Integer parseXxx Math Object System Throwable Thre ...

随机推荐

  1. [bx] and loop

    1.[bx] 表示一个内存单元,它的偏移地址在bx中 mov al,[bx] 2.描述符号() 来表示一个寄存器或一个内存单元中的内容. 约定符号idata表示常量. 3.loop 标号 CPU在执行 ...

  2. 记 Centos zabbix-agent启动失败解决思路

    一. 环境介绍 系统版本:Centos7.4 zabbix-agent 版本:zabbix-agent 3.4.7 二. 问题现象 启动zabbix-agent时启动失败 查看zabbix-agent ...

  3. 【图机器学习】cs224w Lecture 16 - 图神经网络的局限性

    目录 Capturing Graph Structure Graph Isomorphism Network Vulnerability to Noise 转自本人:https://blog.csdn ...

  4. Flask 四剑客

    Flask 四剑客 返回字符串,返回 html , 跳转路由,返回 json from flask import Flask, render_template, redirect, jsonify a ...

  5. webstorm 快捷键 失效问题

    解决方案一:  file->Settings->Keymap->设置为Default 解决方案二:  file->Settings->IdeaVim->取消对勾 重 ...

  6. Source Insight 中的 Auto Indenting

    编码过程中,希望输入花括号时能自动对齐,Source Insigth 应如何设置? 先来看一下Source Insight 中的帮助. “ Auto Indenting The auto-indent ...

  7. ado.net Web前端:关于JavaScript知识点的简单梳理

    学习js:1.htmml2.cssjs+html+css == html5 js的组成:1).ecamscript ES是js的标准,js 是es 的实现2)文档对象模型(Document Objec ...

  8. 如何解压bz2后缀的压缩文件

    .bz2 解压1:bzip2 -d FileName.bz2 解压2:bunzip2 FileName.bz2 压缩: bzip2 -z FileName .tar.bz2 解压:tar jxvf F ...

  9. 【01JMeter基础】线程组

    线程组 我们存在接口请求的地方,在JMeter中我们使用最多的模块,分为 setUp线程组.线程组.tearDown线程组 setUp线程组:不论如何排序,都会在所有的线程组中被最早执行,如果有多个s ...

  10. c++ UDP套接字服务器端代码示范

    c++ UDP套接字服务器端代码示范 #include<winsock2.h> //包含头文件 #include<stdio.h> #include<windows.h& ...