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实现第四届蓝桥杯组素数

    组素数 题目描述 素数就是不能再进行等分的数.比如:2 3 5 7 11 等. 9 = 3 * 3 说明它可以3等分,因而不是素数. 我们国家在1949年建国.如果只给你 1 9 4 9 这4个数字卡 ...

  2. 【工作Vlog】Jmeter响应结果乱码解决方案

    资料:https://blog.51cto.com/ydhome/1864340 方法一:使用后置控制器"Beanshell PostProcessor"(动态修改,灵活) 添加后 ...

  3. 基于EntityFramework 6 Code First实现动态建库,分库,数据库自动迁移

    一.前言 公司原本有一个"xx系统",ORM使用EntityFramework,Code First模式.该系统是针对某个客户企业的,现要求该系统支持多个企业使用,但是又不能给每个 ...

  4. [原创][开源] SunnyUI.Net 主题

    SunnyUI.Net, 基于 C# .Net WinForm 开源控件库.工具类库.扩展类库.多页面开发框架 Blog: https://www.cnblogs.com/yhuse Gitee: h ...

  5. 分享一个springboot脚手架

    项目介绍 在我们开发项目的时候各个项目之间总有一些可共用的代码或者配置,如果我们每新建一个项目就把代码复制粘贴再修改就显得很没有必要.于是我就做了一个 poseidon-boot-starter 该项 ...

  6. 一张图搞懂Ubuntu安装时姓名、计算机名、用户名

    安装Ubuntu时会要求填写如下图的信息: 感谢:苏守坤 注意:上面的博客讲述了各自的具体含义,本篇博客只是说明这些名称在系统安装后会出现的位置.

  7. Magic Line【坐标点排序方法】

    Magic Line 题目链接(传送门) 来源:牛客网 题目描述 There are always some problems that seem simple but is difficult to ...

  8. HashMap源码和并发异常问题分析

    要点源码分析 HashMap允许键值对为null:HashTable则不允许,会报空指针异常: HashMap<String, String> map= new HashMap<&g ...

  9. 用了那么多年的 Master 分支或因种族歧视而成为历史?

    最近真的是活久见了...不知道你是否也有碰到之前Fork过的国外开源项目,最近突然崩了,原因居然是好多项目都把master分支改为了main分支!更可怕的是修改原因居然是涉及种族歧视.用了那么多年的m ...

  10. 曹工改bug:centos下,mongodb开机不能自启动,systemctl、rc.local都试了,还是不行,要不要放弃?

    问题背景 最近装个centos 7.6的环境,其中,基础环境包括,redis.nginx.mongodb.fastdfs.mysql等,其中,自启动使用的是systemctl,其他几个组件,都没啥问题 ...