Random类

Random类用来生成随机数字。使用起来也是三个步骤:

  1. 导包
    import java.util.Random;

  2. 创建
    Random r = new Random(); // 小括号当中留空即可

  3. 使用
    获取一个随机的int数字(范围是int所有范围,有正负两种):int num = r.nextInt()
    获取一个随机的int数字(参数代表了范围,左闭右开区间):int num = r.nextInt(3)
    实际上代表的含义是:[0,3),也就是0~2

package apiRandom;import java.util.Random;
import java.util.Scanner;public class demo01Random {public static void main(String[] args) {Random ra = new Random();int num = ra.nextInt();//nextInt方法产生随机数System.out.println("随机生成数:"+num);//生成了一百个0-9之间的随机数Random r = new Random();//只用来创建对象。 r.nextInt()调用for (int i = 0; i < 100; i++) {int num01 = r.nextInt(10); // 范围实际上是0~9System.out.println(num01);}/*
题目要求:
根据int变量n的值,来获取随机数字,范围是[1,n],可以取到1也可以取到n。思路:
1. 定义一个int变量n,随意赋值
2. 要使用Random:三个步骤,导包、创建、使用
3. 如果写10,那么就是0~9,然而想要的是1~10,可以发现:整体+1即可。
4. 打印随机数字*/Scanner sc = new Scanner(System.in);int n = sc.nextInt();//开始上面目标Random ra02 = new Random();int a = ra02.nextInt(n)+1;System.out.println("随机数:"+a);//重点在random的取值范围。}}

ArrayList类

定义一个数组,用来存储3个Person对象。

public static void main(String[] args) {// 首先创建一个长度为3的数组,里面用来存放Person类型的对象Person[] array = new Person[3];Person one = new Person("迪丽热巴", 18);Person two = new Person("古力娜扎", 28);Person three = new Person("玛尔扎哈", 38);// 将one当中的地址值赋值到数组的0号元素位置array[0] = one;array[1] = two;array[2] = three;System.out.println(array[0]); // 地址值System.out.println(array[1]); // 地址值System.out.println(array[2]); // 地址值System.out.println(array[1].getName()); // 古力娜扎}数组有一个缺点:一旦创建,程序运行期间长度不可以发生改变。

数组的长度不可以发生改变。
但是ArrayList集合的长度是可以随意变化的。

ArrayList<String> list = new ArrayList<>();

对于ArrayList来说,有一个尖括号代表泛型。
泛型:也就是装在集合当中的所有元素,全都是统一的什么类型
注意泛型只能是引用类型,不能是基本类型。

注意事项:
对于ArrayList集合来说,直接打印得到的不是地址值,而是内容。
如果内容是空,得到的是空的中括号:[]

// 创建了一个ArrayList集合,集合的名称是list,里面装的全都是String字符串类型的数据// 备注:从JDK 1.7+开始,右侧的尖括号内部可以不写内容,但是<>本身还是要写的。ArrayList<String> list = new ArrayList<>();
System.out,println(list);//输出  []// 向集合当中添加一些数据,需要用到add方法。list.add("赵丽颖");System.out.println(list); // [赵丽颖]list.add("迪丽热巴");list.add("古力娜扎");list.add("玛尔扎哈");System.out.println(list); // [赵丽颖, 迪丽热巴, 古力娜扎, 玛尔扎哈]//        list.add(100); // 错误写法!因为创建的时候尖括号泛型已经说了是字符串,添加进去的元素就必须都是字符串才行

ArrayList当中的常用方法

ArrayList 大小可变的数组
向集合添加元素时,用到add方法

ArrayList当中的常用方法public boolean add(E e):向集合当中添加元素,参数的类型和泛型一致。返回值代表添加是否成功。
备注:对于ArrayList集合来说,add添加动作一定是成功的,所以返回值可用可不用。
但是对于其他集合(今后学习)来说,add添加动作不一定成功。public E get(int index):从集合当中获取元素,参数是索引编号,返回值就是对应位置的元素。public E remove(int index):从集合当中删除元素,参数是索引编号,返回值就是被删除掉的元素。public int size():获取集合的尺寸长度,返回值是集合中包含的元素个数。

  public static void main(String[] args) {ArrayList<String> list = new ArrayList<>();System.out.println(list); // []// 向集合中添加元素:addboolean success = list.add("柳岩");System.out.println(list); // [柳岩]System.out.println("添加的动作是否成功:" + success); // truelist.add("高圆圆");list.add("赵又廷");list.add("李小璐");list.add("贾乃亮");System.out.println(list); // [柳岩, 高圆圆, 赵又廷, 李小璐, 贾乃亮]// 从集合中获取元素:get。索引值从0开始String name = list.get(2);System.out.println("第2号索引位置:" + name); // 赵又廷// 从集合中删除元素:remove。索引值从0开始。String whoRemoved = list.remove(3);System.out.println("被删除的人是:" + whoRemoved); // 李小璐System.out.println(list); // [柳岩, 高圆圆, 赵又廷, 贾乃亮]// 获取集合的长度尺寸,也就是其中元素的个数int size = list.size();System.out.println("集合的长度是:" + size);}

小结:删除元素时,remove的索引值一定是从0号开始

泛型只能是引用类型,不能是基本类型,集合里面保存的都是地址值,基本类型没有地址值
解决:
如果希望向集合ArrayList当中存储基本类型数据,必须使用基本类型对应的“包装类”。
包装类都是引用类型
基本类型 包装类(引用类型,包装类都位于java.lang包下)

byte Byte
short Short
int Integer 【特殊】
long Long
float Float
double Double
char Character 【特殊】
boolean Boolean

从JDK 1.5+开始,支持自动装箱、自动拆箱。

自动装箱:基本类型 --> 包装类型
自动拆箱:包装类型 --> 基本类型

    public static void main(String[] args) {ArrayList<String> listA = new ArrayList<>();// 错误写法!泛型只能是引用类型,不能是基本类型
//        ArrayList<int> listB = new ArrayList<>();ArrayList<Integer> listC = new ArrayList<>();listC.add(100);listC.add(200);System.out.println(listC); // [100, 200]int num = listC.get(1);System.out.println("第1号元素是:" + num);}

练习:

//生成6个1~33之间的随机整数,添加到集合,并遍历集合。public static void main(String[] args) {思路:
1. 需要存储6个数字,创建一个集合,<Integer>
2. 产生随机数,需要用到Random
3. 用循环6次,来产生6个随机数字:for循环
4. 循环内调用r.nextInt(int n),参数是33,0~32,整体+1才是1~33
5. 把数字添加到集合中:add
6. 遍历集合:for、size、getRandom ra = new Random();ArrayList<Integer> list = new ArrayList<>();for(int i = 0;i<6;i++){int a = ra.nextInt(33)+1;list.add(a);}for(int j = 0; j<list.size();j++){System.out.println(list.get(j));}
}

基础02Random类、ArrayList类相关推荐

  1. 10、Scanner类.Random类.Arraylist类

    10.Scanner类.Random类.Arraylist类 1.API概述和使用步骤 2.Scanner概述及其API文档的使用 3.Scanner的使用步骤 4.Scanner练习一_键盘输入两个 ...

  2. Java基础:ArrayList类和Arrays类

    ArrayList类 ArrayList类 ArrayList类的意义 ArrayList使用步骤 ArrayList类的常用方法 ArrayList如何存储基本数据类型 Arrays类 Arrays ...

  3. java remove removeat_2016.3.12 Java中ArrayList类详解(转)

    1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和ILis ...

  4. arraylist 初始化_Java二维数组和动态数组ArrayList 类

    Java二维数组 Java 语言中提供的数组是用来存储固定大小的同类型元素. 1.二维数组初始化和声明 数组变量的声明,和创建数组可以用一条语句完成,如下所示: int a[][] = new int ...

  5. ArrayList类

    一.什么是arryaylist类 ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素. 写法: import java.util.Arr ...

  6. java二维数组添加元素_Java二维数组与动态数组ArrayList类详解

    java二维数组 java 语言中提供的数组是用来存储固定大小的同类型元素. 1.二维数组初始化和声明 数组变量的声明,和创建数组可以用一条语句完成,如下所示: int a[][] = new int ...

  7. Java 中的 ArrayList 类基础使用

    数组的长度是固定的,无法适应数据变化的需求.为了解决这个问题,Java 提供了另一个容器 **java.util.ArrayList **集合类,让我们可以更便捷的存储和操作对象数据. 什么是 Arr ...

  8. ArrayList类基础使用

    数组的长度是固定的,无法适应数据变化的需求.为了解决这个问题,Java提供了另一个容器 **java.util.ArrayList **集合类,让我们可以更便捷的存储和操作对象数据. 什么是Array ...

  9. java基础--Scanner类、Random类、ArrayList 类(IDEA版)

    第一章 Scanner类 Scanner类的功能: 可以实现键盘输入数据,到程序当中. 备注: System.in 系统输入指的是通过键盘录入数据. 引用类型的一般使用步骤: 导包 import 包路 ...

最新文章

  1. TensorFlow基础9-多层神经网络
  2. [ZJOI2010]贪吃的老鼠
  3. puppet php,puppet入门实践
  4. oc - NSArray基础用法总结
  5. 悲催!谷歌员工中位数年薪达 170 万元,却仍买不起房!
  6. 蓝桥杯 ALGO-106 算法训练 6-3判定字符位置
  7. python求最大回文数_python最长回文串算法
  8. android通过代码设置铃声_iOS、Android数据传输管理工具
  9. C语言pthread.h运用
  10. HTML仿腾讯微博首页(Dreamweaver网页作业)
  11. lzma java sdk,Java LZMA 磁盘与内存压缩实现
  12. android悬浮窗(支持退回桌面后显示)
  13. 004 鸿蒙应用开发-通知栏
  14. 网易云音乐外链播放器代码的一个bug
  15. 知物由学 | “群控软件”助长黑灰产套利的零和游戏,硬核技术打击隐秘的不公
  16. PWC-Net: CNNs for Optical Flow Using Pyramid, Warping, and Cost Volume
  17. 1+x2022年9月16日实操题答案
  18. 【C语言】BC64牛牛的快递(DAY 5)
  19. 浅谈:基于物联网的固定资产管理技术
  20. English语法_动名词-概述

热门文章

  1. Mosh--mysql 学习笔记(1)
  2. Tensorflow学习笔记-第二节程序结构
  3. pandas的两种数据类型:Series和DataFrame
  4. ini文件中文乱码 python_用心盘Python:中文文件处理早晚会用到的将中文转成拼音...
  5. labimage 怎样旋转图片_隔断墙见多了,头次见能180旋转任意移动,还多出一面墙来储物...
  6. linux生成ssl证书给haproxy,如何为多个SSL证书配置HAProxy
  7. zen of python什么意思_Zen of Python
  8. 跨设备链路聚合_企业核心经常用到的链路聚合技术,原理与实现
  9. Python之路--协程/IO多路复用
  10. 机器学习知识点查漏补缺(朴素贝叶斯分类)