每日一句
挺喜欢这句话的:可是亲爱的,你真的还不够辛苦。不够努力,不够勤奋。
日记
早晨订了一个7:20的闹钟,因为第一节是巩老师的课,要早早的去。
第一节课巩老师讲了讲上几节课金子搬运的问题,我们组一开始想用暴力,感觉方法不是太好。
于是开始研究dp01背包问题,无奈,最后代码只能达到会用以及自己能够看懂的程度,只能换成了最开始的暴力解决。
第二个问题,给出一个班级的数据,数据中包含每个人最好的6个朋友,根据数据能够求出谁的欢迎度最高,我们想的直接化成N个字符串
寻找里面出现次数最多的字符串。方法还行,不过最后老师点评说:最好是用上文件自动输入,这样才能实现自动化。
第 一 章 API
莫有什么好说的,主要是一个软件的查询。
第 二 章 Scanner类
什么是Scanner类
一个可以解析基本类型和字符串的简单文本扫描器。 例如,以下代码使用户能够从 System.in 中读取一个数:
Scanner sc = new Scanner(System.in);//属于引用类的方法 int i = sc.nextInt();//整数引用
引用包的步骤
- 导包:使用import关键字导包,在类的所有代码之前导包,引入要使用的类型,java.lang包下的所有类无需导入。 格
式:import 包名.类名;
- 创建对象:使用该类的构造方法,创建一个该类的对象。格式如下:
数据类型 变量名 = new 数据类型(参数列表); Scanner stu = new Scanner(System.in);
- 调用方法:调用该类的成员方法,完成指定的功能,格式:
变量名。方法名(); int i = stu.nextInt();
Scanner使用步骤
- 查看类
java.util.Scanner :该类需要import导入后使用。 - 查看构造方法:
public Scanner(InputStream source)
: 构造一个新的 Scanner,它生成的值是从指定的输入流扫描的。 - 查看成员方法:
public int nextInt()
:将输入信息的下一个标记扫描为一个 int 值。 - 使用Scanner类,完成接收键盘录入数据的操作,代码如下:
//1. 导包 import java.util.Scanner; public class Demo01_Scanner { public static void main(String[] args) { //2. 创建键盘录入数据的对象 Scanner sc = new Scanner(System.in); //3. 接收数据 System.out.println("请录入一个整数:"); int i = sc.nextInt(); //4. 输出数据 System.out.println("i:"+i); } }
第三章 Random类
什么是Random类
此类的实例用于生成伪随机数。例如,以下代码使用户能够得到一个随机数:
Random r = new Random(); int i = r.nextInt();
Random 使用步骤
- 查看类:
java.util.Random
:该类需要 import导入使后使用。 - 查看构造方法:
public Random()
:创建一个新的随机数生成器。 - 查看成员方法:
public int nextInt(int n)
:返回一个伪随机数,范围在0(包括)和 指定值n(不包括)之间的int 值。如果想要获得1~N之间的数,直接`int num = r.nextInt(n) + 1; - 使用Random类,完成生成3个10以内的随机整数的操作,代码如下:
//1. 导包 import java.util.Random; public class Demo01_Random { public static void main(String[] args) { //2. 创建键盘录入数据的对象 Random r = new Random(); for(int i = 0; i < 3; i++){ //3. 随机生成一个数据 int number = r.nextInt(10); //4. 输出数据 System.out.println("number:"+ number); } } }
第四章 ArrayList类(难点)
什么是ArrayList类
java.util.ArrayList
是大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储的元素.ArrayList
中可不断添加元素,其大小也自动增长。
ArrayList 使用步骤
- 查看类:
java.util.ArrayList
:该类需要 import导入使后使用。:表示一种指定的数据类型,叫做泛型。E:取自Element(元素)的首字母。在出现E的地方,我们使用一种引用数据类型将其替换即可,表示我们将存储哪种引用类型的元素。代码如下: - 查看构造方法:
public ArrayList()
:构造一个内容为空的集合。 - 基本格式:在JDK7后,右侧泛型的尖括号之内可以留空,但是<>仍然要写。简化格式:
ArrayList list = new ArrayList<>();
- 查看成员方法:
public boolean add(E e)
: 将指定的元素添加到此集合的尾部。类型的对象。使用ArrayList类,存储三个字符串元素,代码如下:
public class Test02StudentArrayList { public static void main(String[] args) { //创建学生数组 ArrayList<String> 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); } }
常用方法和遍历
对于元素的操作,基本体现在——增、删、查。常用的方法有:
public boolean add(E e)
:将指定的元素添加到此集合的尾部。public E remove(int index)
:移除此集合中指定位置上的元素。返回被删除的元素。public E get(int index)
:返回此集合中指定位置上的元素。返回获取的元素。public int size()
:返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界- 执行代码:
public class Demo01ArrayListMethod { public static void main(String[] args) { //创建集合对象 ArrayList<String> list = new ArrayList<String>(); //添加元素 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对象不能存储基本类型,只能存储引用类型的数据。类似 不能写,但是存储基本数据类型对应的
包装类型是可以的。所以,想要存储基本类型数据, <> 中的数据类型,必须转换后才能编写,转换写法如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ix0fKZLK-1573375968743)(https://s2.ax1x.com/2019/11/10/Muo3If.png)]
我们发现,只有 Integer 和 Character 需要特殊记忆,其他基本类型只是首字母大写即可。那么存储基本类型数
据,代码如下:
public class Demo02ArrayListMethod { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); list.add(4); System.out.println(list); } }
总结
首先是输入类Scanner,主要用来做题。随机数的类Random,用来获得某个范围内的随机数据,最后Arraylist,一个动态的数组,可以用来储存数据。