目录
一、Scanner类
1、概念
文本扫描器。
2、使用
(1)导包
import java.util.Scanner;
(2)创建
Scanner sc = new Scanner(System.in);//对象名sc可自定义
(3)常用方法
int a = sc.mextInt();//获取从键盘输入的一个int类型的整数
String str = sc.next();//获取从键盘输入的一个String类型的字符串
double b = sc.nextDouble();//获取从键盘输入的一个double类型的浮点数
二、匿名对象
1、概念
顾名思义,匿名对象就是没有名字的对象。在创建对象时,只通过new的动作在堆内存开辟空间,却没有把堆内存空间的地址值赋值给栈内存的某个变量用以存储
2、对比
(1)语法
创建正常对象: 类名称 对象名 = new 类名称();
创建匿名对象: new 类名称();
(2)优缺
匿名对象因为没有名字,名字即是地址,所以它只能使用一次,再次使用时再也找不到了。匿名对象的好处就是使用完毕就会成为垃圾,可以在垃圾回收器空闲时进行回收,从而节省内存空间,而正常对象可重复使用。
3、示例
自定义学生类,分别创建正常对象与匿名对象,体会二者不同之处
public class test01{
public static void main(String args[]){
//正常对象
student s1 = new student("小明",8);
System.out.println(s1);//姓名:小明 年龄:8
//匿名对象
System.out.println(new student("小红",9));//姓名:小红 年龄:9
//再次打印匿名对象
System.out.println(new student());//姓名:null 年龄:0
}
}
class student{
private String name;
private int age;
//无参构造方法
student(){
}
//有参构造方法
student(String name,int age){
this.name=name;
this.age=age;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
public String toString(){
return "姓名:"+name+" 年龄:"+age;
}
}
三、Random类
1、概念
一个简单的随机数生成器
2、使用
(1)导包
import java.util.Random;
(2)创建
Random random = new Random();
(3)常用方法
int a = random.nextInt();//随机生成一个int类型范围内的随机整数,有正有负
int b = random.nextInt(n);//随机生成一个范围在区间[0,n-1]内的随机整数
int c = random.nextInt(n)+1;//随机生成一个范围在区间[1,n]内的随机整数
int d = random.nextInt(n-m+1)+m;//随机生成一个范围在区间[m,n]内的随机整数
3、示例
酒席上一个常见的猜数字小游戏,先提前确定一个数字n作为正确答案,猜测着进行猜测,若所猜数字大于n,提示偏大,反之提示偏小,直到猜对为止
import java.util.Scanner;
import java.util.Random;
public class GuessGame{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
Random r = new Random();
int randomNumber=r.nextInt(100)+1;//表示范围在区间[1,100]内的随机整数
int count=0;//计数器:记录猜中所用次数
//因为猜错了需要用户重试,所以使用一个永真循环,猜中break终止即可
System.out.println("============欢迎来到“无聊猜猜猜”小游戏============");
while(true){
System.out.print("请输入你猜测的数字:");
int number = sc.nextInt();//从键盘获取一个整数赋值给number
++count;//更新计数器
if(number>randomNumber){
System.out.println("数字偏大,请重试");
}else if(number<randomNumber){
System.out.println("数字偏小,请重试");
}else{
System.out.println("恭喜你,猜中啦!");
break;
}
}
System.out.println("======================================================");
System.out.println("本次游戏你一共用了"+count+"次机会猜中了随机数");
}
}
四、ArrayList集合类
1、概念
可变的数组,即动态数组。存储在内的数据称为元素,此类提供一些方法来操作内部存的元素。 ArrayList 中可不断添加元素,其大小也自动增长。
2、使用
(1)导包
import java.util.ArrayList;
(2)创建
ArrayList<E>list = new ArrayList<E>();//写法1
ArrayList<E>list = new ArrayList<>();//写法2
解释:
1、从JDK1.7+开始,右侧尖括号内的引用类型名可不写,默认为等号左边的引用类型,所以我们一般采用写法2,更简洁一些。
2、尖括号<>表示泛型,即装在集合中的所有元素都是统一的什么类型
3、E代表引用类型,此出仅是占位表示
(3)常用方法
public boolean add(E e)//向集合中添加元素
public E remove(int index)//删除下标为index的元素
public E get(int index)//返回集合中下表为index的元素
public int size()//获取集合长度,即集合中元素的个数
3、注意事项
ArrayList集合中的元素类型为泛型,泛型只能是引用类型,不能是基本类型
如:ArrayList <int>list =new ArrayList<>(); 就是错误的写法
我们必须在<>中使用基本类型的“包装类”,所以正确写法应为:
ArrayList <Integer>list = new ArrayList<>() ;
基本数据类型 | 对应的包装类 |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
4、示例
example1
/*
生成6个1-33之间的随机整数,添加到集合中,遍历该集合。再删除第二个随机数,再次遍历该集合
*/
import java.util.Random;
import java.util.ArrayList;
public class ArrayList01{
public static void main(String args[]){
Random random = new Random();
ArrayList<Integer>list=new ArrayList<>();
//ArrayList<Integer>list=new ArrayList<Integer>();以上两种写法都可
for(int i=0;i<=5;i++){
int number=random.nextInt(33)+1;//1-33之间的随机数
list.add(number);//将随机数number添加到集合list中去
}
System.out.println("生成的6个随机数如下:");
for(int i=0;i<list.size();i++){
System.out.print(list.get(i)+" ");
}
System.out.println("\n删除第2个随机数后:");
list.remove(1);
for(int i=0;i<list.size();i++){
System.out.print(list.get(i)+" ");
}
}
}
example2
//自定义3个学生对象,并将其添加到集合中并遍历
import java.util.ArrayList;
public class ArrayList02{
public static void main(String args[]){
ArrayList<student>st=new ArrayList<>();
student [] stu = new student[3];//对象数组
stu[0]=new student("黄忠","男",68);
stu[1]=new student("孙尚香","女",28);
stu[2]=new student("狄仁杰","男",58);
for(int i=0;i<3;i++){
st.add(stu[i]);//将每一个学生类对象添加到集合st中
}
for(int i=0;i<3;i++){
System.out.println(st.get(i));
}
}
}
class student{
String name;
String sex;
int age;
student(String name,String sex,int age){
this.name=name;
this.sex=sex;
this.age=age;
}
public String toString(){
return "姓名:"+name+" 性别:"+sex+" 年龄:"+age;
}
}
example3
//集合类型也可作为参数
//自定义打印集合的方法,如{xx@xx@xx@xx}格式
import java.util.ArrayList;
public class ArrayList03{
public static void main(String args[]){
ArrayList<String>list=new ArrayList<>();
list.add("张无忌");
list.add("周芷若");
list.add("赵敏");
list.add("小昭");
System.out.println("默认的打印集合的方法为:[xx,xx,xx]");
System.out.println(list);
System.out.println("自定义的打印集合的方法为:{xx@xx@xx}");
printArrayList(list);
}
public static void printArrayList(ArrayList<String> list){
System.out.print("{");
for(int i=0;i<list.size();i++){
if(i==list.size()-1){
System.out.print(list.get(i)+"}");
}
else{
System.out.print(list.get(i)+"@");
}
}
System.out.println();
}
}
点赞加关注,下次不迷路哈
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/93484.html