Scanner类
Scanner类的中文翻译叫“简单文本扫描器”,作用就是可以实现键盘输入。
实例演示:
import java.util.Scanner;
public class Myutils{
public static int getInputNumber() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个数字:");
int number = scanner.nextInt();
return number;
}
public static String getInputString() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入任意字符:");
String msg= scanner.next();
return msg;
}
}
如上述代码,Scanner对象的生成时,要给构造参数http://System.in,在使用的时候,scanner.nextInt()返回整型数字,scanner.next()返回的是字符串,使用起来很简单。
一般可以将提示信息和scanner对象都封装一下,生成一个工具方法,即Scanner的对象生成在另外的类中,在需要使用的时候,将提示信息msg和scanner对象作为参数,传递给工具方法,工具方法中打印输出msg,并返回scanner.next或scanner.nextInt即可。如图。工具类生成scanner对象调用工具方法,scanner对象作为参数
Random类与random方法
random有两个,一个是来源于java.util.Random,这个是一个工具类,生成随机数用的,其成员方法nextInt(n)可以生成伪随机数0-n,不包括n的int值。
另一个是Math.random()方法,是一种方法,也是生成随机数的,默认产生大于等于0.0且小于1.0之间的随机double型随机数。
Random类需要生成对象,调用成员函数,并输入n值来设置随机数区间,产生区间内的伪随机数。
Math.random()方法可以直接调用,是一种数学方法,不需要设置区间,随机区间固定,生成double类型伪随机数。
ArrayList类
ArrayList也是一个工具类,来自与java.util.ArrayList。这个工具是解决对象数组的问题的,之前已经讲过数组,是一种长度固定的数据容器,根据下标操作数据。ArrayList类实现了数组的灵活性,是一种可变的数组。存储在内部的数据成为元素,可以随着数据增多而增加内存大小,提供了一些成员方法用于操纵内部数据。泛型
ArrayList使用时需要导包java.util.ArrayList ,注意,这后面的E代表的是泛型,即广泛的类型之意,不限制类型,就像数组在定义的时候,一定要先声明类型一样,这个也是必须的。类型确定后,只能存储指定类型的元素。如ArrayList,ArrayList
通常,ArrayList用于存储引用类型的元素,尤其是将类对象作为元素经常使用。简单使用方法
public class Test02StudentArrayList {
public static void main(String[] args) {
//创建学生数组
ArrayList list = new ArrayList<>();
//创建学生对象
String s1 = "曹操";
String s2 = "刘备";
String s3 = "孙权";
//打印学生ArrayList集合
System.out.println(list);
//把学生对象作为元素添加到集合
list.add(s1);
list.add(s2);
list.add(s3);
//打印学生ArrayList集合
System.out.println(list);
}
}
固定的流程,要先声明类型,new方法创建并初始化类对象list,接着可以直接调用list.add方法添加数据,添加的数据要符合指定的泛型,数据是默认添加到了数组的末尾位置。常用增、删、查方法
public boolean add(E e) :将指定的元素添加到此集合的尾部。
public E remove(int index) :移除此集合中指定位置上的元素。返回被删除的元素。
public E get(int index) :返回此集合中指定位置上的元素。返回获取的元素。
public int size() :返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界。
其实这些方法和数组操作原理是一样的,remove和get都是根据index索引值来操纵数据的,而size()方法获取数组长度,而数组中是以数组名.length-1方式获取长度。示例代码如下:
public class Demo01ArrayListMethod {
public static void main(String[] args) {
//创建集合对象
ArrayList list = new ArrayList();
//添加元素
list.add("hello");
list.add("world");
list.add("java");
//public E get(int index):返回指定索引处的元素
System.out.println("get:"+list.get(0));
System.out.println("get:"+list.get(1));
System.out.println("get:"+list.get(2));
//public int size():返回集合中的元素的个数
System.out.println("size:"+list.size());
//public E remove(int index):删除指定索引处的元素,返回被删除的元素
System.out.println("remove:"+list.remove(0));
//遍历输出
for(int i = 0; i < list.size(); i++){
System.out.println(list.get(i));
}
}
}如何存储基本类型数据
ArrayList常存储引用类型数据,不能直接存储基本类型,比如是不行的。但是可以存储基本类型对应的包装类型。
只需要特别记忆的只有int 和 Integer,char 和 Character。示例如下:
public class Demo02ArrayListMethod {
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
System.out.println(list);
}
}
接下来就可以自己搞点小练习玩玩了。