第一章 API
API(Application programming Interface),应用程序编程接口。Java API是程序员的字典,是JDK提供给我们使用的类的说明文档。
第二章 Scanner类
功能:实现键盘输入数据到程序当中。
引用类型的一般使用步骤:
- 导包
import 包路径.类名称;
- 如果需要使用的目标类,和当前类在同一包内,则可以省略导包语句不写。
- 只有java.lang包下的内容不需要导包,其他的包都需要import语句。
- 创建
类名称 对象名 = new 类名();
- 使用
对象名.成员方法名()
简单的小例子
package cn.itcast.day07.demo01;
import java.util.Scanner;
public class Demo01Scanner {
public static void main(String[] args) {
Scanner sn = new Scanner(System.in);
//键盘输入数字
int num=sn.nextInt();
System.out.println(num);
//键盘输入字符串
String str=sn.next();
System.out.println(str);
}
}
练习
- 键盘输入两个数,结果输出两个数的和
package cn.itcast.day07.demo01;
import java.util.Scanner;
public class Demo02ScannerSum {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数字:");
int a = sc.nextInt();
System.out.println("请输入第二个数字:");
int b = sc.nextInt();
System.out.println("the result is:" + (a + b));
}
}
- 打印输入的三个int类型变量的最大值
package cn.itcast.day07.demo01;
import java.util.Scanner;
public class Demo03ScannerMax {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数:");
int a = sc.nextInt();
System.out.println("请输入第二个数:");
int b = sc.nextInt();
System.out.println("请输入第三个数:");
int c = sc.nextInt();
int temp = a > b ? a : b;
int max = temp > c ? temp : c;
System.out.println("The Max is:" + max);
}
}
匿名对象
- 定义:
new 类名();
- 使用
package cn.itcast.day07.demo01.demo02;
public class Demo01Anonymous {
public static void main(String[] args) {
new Person().name="hanhan";
}
}
- 匿名对象只能唯一的使用一次,下次使用不得不在创建一个新的对象。
使用建议:如果确定有一个对象只需要使用唯一的一次,则可以使用匿名对象。
- 匿名对象作参数和返回值
package cn.itcast.day07.demo01.demo02;
import java.util.Scanner;
public class Demo02Anonymous {
public static void main(String[] args) {
methodParame(new Scanner(System.in));
Scanner sc=methodValue();
System.out.println("second time:"+sc.nextInt());
}
//做参数
public static void methodParame(Scanner sc){
int num=sc.nextInt();
System.out.println("first time:"+num);
}
//做返回值
public static Scanner methodValue(){
return new Scanner(System.in);
}
}
第三章 Random类
功能:产生随机数
使用:三步骤
package cn.itcast.day07.demo01.demo03;
import java.util.Random;
public class Demo01Random {
public static void main(String[] args) {
Random rd=new Random();
int num = rd.nextInt();
System.out.println("范围是int范围:"+num);
int num1=rd.nextInt(30);
System.out.println("范围是[0,30):"+num1);
}
}
练习
- 根据int变量n的值,获取随机数字,范围是[1,n]
package cn.itcast.day07.demo01.demo03;
import java.util.Random;
import java.util.Scanner;
public class Demo02Random {
public static void main(String[] args) {
System.out.print("Input the the max of random digital:");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
Random rd = new Random();
int num = rd.nextInt(n) + 1;
System.out.println(num);
}
}
- 猜数字。猜错了给出提示,知道才正确。其中,平均次数最少的猜法采用
折半查找
package cn.itcast.day07.demo01.demo03;
import java.util.Random;
import java.util.Scanner;
public class Demo03Random {
public static void main(String[] args) {
Random rd = new Random();
int num = rd.nextInt(100)+1;
System.out.println("请输入1-100之间的数字");
Scanner sc =new Scanner(System.in);
while(sc.hasNextInt()){
int input = sc.nextInt();
if(input == num){
System.out.println("恭喜你!猜对了");
break;
}else if (input > num){
System.out.println("猜大了!");
}else{
System.out.println("猜小了!");
}
}
}
}
第四章 ArrayList类
引述:使用之前的知识定义对象数组,因为数组本身的限制(数组一旦创建,元素个数就固定了),因此引入ArrayList类。
<E>:泛型 - 装在集合中的元素的同一类型,只能是引用类型。
定义和使用
- 数组长度不可以改变,ArrayList集合的长度可以随意变化。
- 对于ArrayList集合来说,直接打印输出的不是地址值,而是内容。
- 若内容为空,输出时空的中括号(
[]
)
- 若内容为空,输出时空的中括号(
package cn.itcast.day07.demo01.demo04;
import java.util.ArrayList;
public class Demo02ArrayList {
public static void main(String[] args) {
//从jdk1.7+开始,右侧的尖括号内部可以不写内容
ArrayList<String> list = new ArrayList<>();
System.out.println(list);//[]
list.add("hanhan");
System.out.println(list);//[hanhan]
list.add("haohao");
list.add("cheche");
System.out.println(list);//[hanhan, haohao, cheche]
}
}
常用方法和遍历
- public boolean add(E e):向集合中添加元素
对于ArrayList来说,add方法一定成功,可用可不用。对于其他集合的添加却不一定成功。
- public E get(int index):获取集合中的元素,参数时索引值
- public E remove(int index):从集合中删除元素,参数时索引值
- public int size():获取集合的尺寸长度,返回值就是集合中元素的个数
package cn.itcast.day07.demo01.demo04;
import java.util.ArrayList;
/*
public boolean add(E e):向集合中添加元素
public E get(int index):获取集合中的元素,参数时索引值
public E remove(int index):从集合中删除元素,参数时索引值
public int size():获取集合的尺寸长度,返回值就是集合中元素的个数
*/
public class Demo03ArrayListMethod {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("hanhan");
list.add("qiqi");
list.add("heihei");
System.out.println(list);//[hanhan, qiqi, heihei]
System.out.println(list.size());//3
System.out.println(list.get(0));//hanhan
System.out.println(list.get(2));//heihei
list.remove(0);
System.out.println(list);//[qiqi, heihei]
System.out.println(list.size());//2
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
如何存储基本数据类型
如果希望向ArrayList集合中保存基本数据类型,必须使用基本类型对应的“包装类”。
从jdk1.5+开始,支持自动装箱和拆箱
- 自动装箱:基本类型 --> 包装类型
- 自动拆箱:包装类型 --> 基本类型
基本类型 | 包装类(引用类型,都位于java.lang中) |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
double | Double |
float | Float |
char | Character |
boolean | Boolean |
练习
- 生成6个1-33之间的随机整数,添加到集合,并遍历集合
package cn.itcast.day07.demo01.demo05;
import java.util.ArrayList;
import java.util.Random;
public class Demo01Add {
public static void main(String[] args) {
Random rd = new Random();
ArrayList<Integer> list = new ArrayList<>();
for (int i = 0; i < 6; i++) {
int num = rd.nextInt(33) + 1;
list.add(num);
}
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
- 自定义4个学生对象,添加到集合,并遍历
package cn.itcast.day07.demo01.demo05;
import java.util.ArrayList;
public class Demo02Student {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
Student[] array = new Student[4];
for (int i = 0; i < array.length; i++) {
array[i] = new Student();
}
array[0].setId("111");
array[1].setId("222");
array[2].setId("333");
array[3].setId("444");
array[0].setName("hanhan");
array[1].setName("ququ");
array[2].setName("lele");
array[3].setName("gougou");
array[0].setAge(12);
array[1].setAge(25);
array[2].setAge(45);
array[3].setAge(78);
for (int i = 0; i < array.length; i++) {
list.add(array[i]);
}
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getId()+"\t"+list.get(i).getName()+"\t"+list.get(i).getAge());
}
}
}
- 定义打印集合的方法,将ArrayList集合作为参数,使用{}扩起集合,使用@分隔元素。
package cn.itcast.day07.demo01.demo05;
import java.util.ArrayList;
import java.util.Random;
public class Demo03MethodPrint {
public static void main(String[] args) {
Random rd = new Random();
ArrayList<Integer> list = new ArrayList<>();
for (int i = 0; i < 6; i++) {
int num = rd.nextInt(33)+1;
list.add(num);
}
methodPrint(list);
}
public static void methodPrint(ArrayList<Integer> list){
System.out.print("{");
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i));
if(i==list.size()-1){
System.out.print("}");
}else{
System.out.print("@");
}
}
}
}
- 用一个大集合存储20个随机数字,然后筛选偶数元素,放在小集合中,要求使用自定义方法实现筛选。
package cn.itcast.day07.demo01.demo05;
import java.util.ArrayList;
import java.util.Random;
public class Demo04Return {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
Random rd = new Random();
for (int i = 0; i < 20; i++) {
int num = rd.nextInt(100) + 1;
list.add(num);
}
System.out.println("初始化集合值:");
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i) + " ");
}
ArrayList<Integer> newList = methodReturn(list);
System.out.println("\n筛选后集合值:");
for (int i = 0; i < newList.size(); i++) {
System.out.print(newList.get(i) + " ");
}
}
public static ArrayList<Integer> methodReturn(ArrayList<Integer> list) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i) % 2 != 0) {
list.remove(i);
}
}
return list;
}
}