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. java实现第三届蓝桥杯数量周期

    数量周期 [结果填空](满分9分) 复杂现象背后的推动力,可能是极其简单的原理.科学的目标之一就是发现纷繁复杂的自然现象背后的简单法则.爱因斯坦的相对论是这方面的典范例证. 很早的时候,生物学家观察某 ...

  2. 用户和用户组管理-影子文件shadow

    ll /etc/shadow 由于shadow文件的权限,所以,只有root可以读 vi /etc/shadow 一共有九列信息: 第一列表示用户名:第二列表示经过加密之后的密码,如果密码是!!或者* ...

  3. Python API自动化测试实操

    废话不多说,直接上代码截图: 我们首先来看看整个工程的目录结构,这样以便于了解项目的调用关系:config   #这里是配置包 -- base_url.py 具体配置了被测系统的url and pat ...

  4. 三分钟搭建websocket实时在线聊天,项目经理也不敢这么写

    我们先看一下下面这张图: 可以看到这是一个简易的聊天室,两个窗口的消息是实时发送与接收的,这个主要就是用我们今天要讲的websocket实现的. websocket是什么? websocket是一种网 ...

  5. idea 启动命令行的时候提示不能创建PTY

    问题描述: 昨天上午,凯哥还在好好的使用idea,中午的时候,360扫描,好像要升级还是要干嘛的,没细看,然后凯哥就点击确定.结果到下午使用idea的Terminal 命令行的时候提示,如下图错误: ...

  6. [转] strtol()详解

    点击此处阅读原文 今天,在review 一些代码的时候,看到了strtol()这个函数,由于以前使用它的时候,还没有深刻的了解,这次,我决定探个究竟. 网上关于这个函数的资料大都来源于同份资料,lin ...

  7. (八)利用 Profile 构建不同环境的部署包

    接上回继续,项目开发好以后,通常要在多个环境部署,象我们公司多达5种环境:本机环境(local).(开发小组内自测的)开发环境(dev).(提供给测试团队的)测试环境(test).预发布环境(pre) ...

  8. AutoIt实现文件上传

    AutoIt目前最新是v3版本,这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作.它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动 ...

  9. python中的bytes和str类型

    经过一上午的查找资料.大概理清楚了bytes类型和str类型的区别. bytes类型和str类型在呈现形式有相同之处,如果你print一个bytes类型的变量,会打印一个用b开头,用单引号括起来的序列 ...

  10. 【01JMeter基础】测试计划

    测试计划 整个脚本的集合根目录,所有线程组集合的承载,可以添加线程组.测试片段.非测试元件.配置元件.监听器.定时器.前置/后置处理起器.断言等 一.用户自定义变量 可以使用在所有的线程组中,通过${ ...