Java API
Scanner类的功能,可以实现键盘输入数据,到程序当中。
引用类型的使用
导包:只有java.lang下的内容不需要导包,其他的包都需要import语句
创建:类名称 对象名 = new 类名称()
使用:对象名.成员方法名()
获取键盘输入的一个int数字:int num = sc.nextInt();
获取键盘输入的一个字符串:String str = sc.next();
public class DemoScanner {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// int res = sc.nextInt();
// System.out.println(res);
String res2 = sc.next();
System.out.println(res2);
}
}
next是接收键盘所有输入作为字符串,nextInt实际上是做了一个转换。
匿名对象建立
只有右边的对象,没有左边的名字和赋值运算符。
new 类名称();
注意:匿名对象只能使用唯一的一次,下次使用要重新创建。
import java.util.Scanner;
public class DemoAnonymous {
public static void main(String[] args) {
show(new Scanner(System.in));
}
public static void show(Scanner sc){
int num = sc.nextInt();
System.out.println("输入的是"+num);
}
}
匿名对象作为返回值
public class DemoAnonymous {
public static void main(String[] args) {
int res = returnScanner().nextInt();
System.out.println(res);
}
public static Scanner returnScanner() {
return new Scanner(System.in);
}
}
Random模块
public class DemoRandom {
public static void main(String[] args) {
Random r = new Random();
int res = r.nextInt();
int res2 = r.nextInt(10); # 左闭右开
System.out.println(res);
System.out.println(res2);
}
}
猜数字游戏:
public class GuessNum {
public static void main(String[] args) {
Random r = new Random();
int target_num = r.nextInt(101);
while (true){
int guess_num = new Scanner(System.in).nextInt();
if(guess_num < target_num) {
System.out.println("小了");
}
else if (guess_num > target_num) {
System.out.println("大了");
}
else {
System.out.println("数字是"+ target_num);
break;
}
}
}
}
ArrayList集合
数组长度不可以发生改变,ArrayList的长度是可以改变的。
对于ArrayList有一个范型,全部是统一的类型,范型只能是应用类型,不能是基本类型。
public class DemoArrayList {
public static void main(String[] args) {
ArrayList list = new ArrayList<>();
System.out.println(list);
list.add("111");
list.add("222");
list.add("333");
list.add(3,"ffefe");
System.out.println(list);
}
}
ArrayList 类似于python的列表。
常用方法:
public boolean add(E e): 向集合添加元素
Public E get(int index): 从几何中获取元素
public E remove(int index): 从几何中删除元素
public int size(): 获取集合的尺寸长度,返回值是集合中包含的元素。
如何向集合ArrayList当中存储基本类型,必须使用基本类型对应的包装类。
byteByte
shortShort
intInteger
longLong
float Float
double Double
char Character
boolean Boolean
ArrayList list = new ArrayList<>();
list.add(10);
System.out.println(list);
习题一
生成6个1-33之间的随机整数,添加到集合并遍历集合。
public class DemoPractice1 {
public static void main(String[] args) {
Random r = new Random();
ArrayList lis = new ArrayList<>();
for (int i = 0; i < 6; i++) {
int num = r.nextInt(33) + 1;
lis.add(num);
}
System.out.println(lis);
for (int i = 0; i < lis.size(); i++) {
System.out.println(lis.get(i));
}
}
}
习题二
自定义四个对象,添加到集合并遍历
public class DemoPractice2 {
public static void main(String[] args) {
Duck duck1 = new Duck();
duck1.setName("duck111");
Duck duck2 = new Duck();
duck2.setName("duck222");
Duck duck3 = new Duck();
duck3.setName("duck333");
ArrayList lis = new ArrayList<>();
lis.add(duck1);
lis.add(duck2);
lis.add(duck3);
for (int i = 0; i < lis.size(); i++) {
System.out.println(lis.get(i).getName());
}
}
}
习题三
定义以指定格式打印集合的方法(Arraylist作为参数),使用{}括起集合,使用@分隔每个元素
public class DemoPractice3 {
public static void main(String[] args) {
ArrayList lis = new ArrayList<>();
lis.add("hhhhh");
lis.add("dfafdf");
lis.add("324");
lis.add("ff5");
printArray(lis);
}
public static void printArray(ArrayList lis){
String result = "{";
for (int i = 0; i < lis.size(); i++) {
if(i < lis.size()-1){
result = result + lis.get(i) + "@";
}else{
result = result + lis.get(i) + "}";
}
}
System.out.println(result);
}
}
习题四
用一个大集合存入20个随机数字,然后筛选其中的偶数元素放入小集合,要求用自定义的方法完成筛选。注意Arraylist作为参数返回值都要带上范型。
public class DemoPractice4 {
public static void main(String[] args) {
Random r = new Random();
ArrayList bigArrayList = new ArrayList();
for (int i = 0; i < 20; i++) {
int num = r.nextInt(100) + 1;
bigArrayList.add(num);
}
ArrayList newlis = returnArray(bigArrayList);
System.out.println(newlis);
}
public static ArrayList returnArray(ArrayList lis) {
ArrayList new_lis = new ArrayList();
for (int i = 0; i < lis.size(); i++) {
int num = lis.get(i);
if(num % 2 == 0){
new_lis.add(num);
}
}
return new_lis;
}
}