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. 从程序员到项目主管再到项目总监,一个IT从业者三个职业生涯阶段的工作生活日常

    这是王不留的第 8 篇原创文章 前段时间写过<王不留的十多年工作和生活的流水帐>,在知乎.简书,还有不少微信的朋友私信问我每天四点钟是如何做到的?你现在的作息时间是怎么安排的? 于是,我将 ...

  2. 解读三组容易混淆的Dockerfile指令

    长话短说,今天分享三组容易混淆的Dockerfile指令, 帮助大家编写更优雅的Dockfile文件.构建更纯净的Docker镜像. COPY vs ADD COPY.ADD主体功能类似:从指定位置拷 ...

  3. C# 反射详解一

    首先反射是基于System.Reflection命名空间下,.Net框架提供的帮助类库,可以读取并使用metadata(元数据:描述对象信息的数据). 我们再来看下代码生成编译的总过程. 编译器编译( ...

  4. 【百度前端技术学院 Day7/8】布局

    1. 定位 1.1 文档流 单个元素: 块级元素:内容宽度是其父元素的宽度的100%,并且与其内容一样高. 内联(行内)元素:高宽与他们的内容高宽一样.(所以不能为他们设置宽高) 元素之间的交互: 块 ...

  5. vue甘特图gantt

    vue做甘特图,先大致介绍下核心功能: (1)横轴.纵轴拖拽: (2)自定义监听点击事件(双击.右键等)(3)任务之间显示父子层级关系:(4)左侧列表信息,右侧时间轴表示任务:(5)每个任务可以订制样 ...

  6. Linux系统如何设置开机自动运行脚本?

    大家好,我是良许. 在工作中,我们经常有个需求,那就是在系统启动之后,自动启动某个脚本或服务.在 Windows 下,我们有很多方法可以设置开机启动,但在 Linux 系统下我们需要如何操作呢? Li ...

  7. Redis学习笔记(十九) 发布订阅(上)

    Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息,它的发布与订阅功能由PUBLISH.SUBSCRIBE.PSUBSCRIBE等命令组成. ...

  8. CAS(乐观锁)与ABA问题

    cas是什么 CAS 全称 compare and swap 或者compare and exchange  比较并且交换.用于在没有锁的情况下,多个线程对同一个值的更新. cas原理 例如,我们对一 ...

  9. Python SimpleHTTPServer (python3 -m http.server 6789)

    搭建FTP,或者是搭建网络文件系统,这些方法都能够实现Linux的目录共享.但是FTP和网络文件系统的功能都过于强大,因此它们都有一些不够方便的地方.比如你想快速共享Linux系统的某个目录给整个项目 ...

  10. Android学习笔记上下文菜单

    布局文件main_activity.xml <?xml version="1.0" encoding="utf-8"?> <RelativeL ...