还有31天!
对象数组
package Demo1801;
public class Person {
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package Demo1801;
/*
* 题目:
* 定义一个数组,用来存储三个person对象
*
* 数组有一个缺点,一旦创建,程序运行期间长度不可以发生改变。
* */
public class Demo01Array {
public static void main(String[] args) {
//首先创建一个长度为3的数组,里面用来存放Person类型的对象
Person[] array = new Person[3];
System.out.println(array);//[LDemo1801.Person;@5fd0d5ae
System.out.println(array[0]);//null
Person one = new Person("one",1);
Person two = new Person("two",2);
Person three = new Person("three",3);
//将one当中的地址值赋值到数组的0号元素位置
array[0] = one;
array[1] = two;
array[3] = three;
System.out.println(array[0].getName());
}
}
ArrayList集合概述和基本使用
package Demo1801;
/*
数组的长度不可以发生改变。
但是ArrayList集合的长度是可以随意变化的。
对于ArrayList来说,有一个尖括号<E>代表泛型。
泛型,也就是装在集合当中的所有元素,全都是统一的什么类型。
注意:泛型只能是引用类型,不能是基本类型。
注意事项:
对于ArrayList集合来说,直接打印得到的不是地址值,而是内容。
如果内容为空,得到的是空的中括号。[]
* */
import java.util.ArrayList;
public class Demo02ArrayList {
public static void main(String[] args) {
//创建了一个ArrayList集合,集合的名称是list,里面装的全都是String字符串类型的数据
//备注,从JDK1.7+开始,右侧的尖括号内部可以不写内容,但是<>本身还是要写的
ArrayList<String> arrayList = new ArrayList<>();
System.out.println(arrayList);//[]
//向集合当中添加一些数据,需要用到add方法。但是添加进去的必须是字符串
arrayList.add("xx");
arrayList.add("hh");
System.out.println(arrayList);//[xx, hh]
}
}
ArrayList集合的常用方法和遍历
package Demo1801;
/*
* ArrayList当中常用的方法有:
* public boolean add(E e):向集合当中添加元素,参数的类型和泛型一致。返回值代表添加是否成功。
* 备注:对于ArrayList集合来说,add添加动作一定是成功的,所以返回值可用可不用。
* 但是对于其他的集合(今后学习),ada添加动作不一定成功。
*
* public E get(int index):从集合当中获取元素,参数是索引编号,返回值就是对应位置的元素。
* public E remove(int index):从集合当中删除元素,参数是索引编号,返回值就是被删除掉的元素。
* public int size():获取集合的尺寸长度。返回值是集合中包含的元素个数。
* */
import java.util.ArrayList;
public class Demo03ArrayListMethod {
public static void main(String[] args) {
ArrayList<String> arrayList = new ArrayList<>();
System.out.println(arrayList);//[]
//向集合当中添加元素
arrayList.add("xx");
arrayList.add("tt");
//打印集合长度
System.out.println(arrayList.size());
//输出集合内容
System.out.println(arrayList);
//获得集合0号元素,get,索引值从0开始
System.out.println(arrayList.get(0));//xx
//删除集合第二个元素并打印
arrayList.remove(1);
System.out.println(arrayList);
System.out.println("========");
ArrayList<String> arrayList1 = new ArrayList<>();
boolean success = arrayList1.add("hh");
//System.out.println("添加的动作是否执行:" + success);
arrayList1.add("hh1");
arrayList1.add("hh2");
System.out.println(arrayList1);//[hh, hh1, hh2]
//获取
String name = arrayList1.get(0);
System.out.println(name);//hh
//删除
String delete = arrayList1.remove(2);
System.out.println("被删除的是:" + delete);//hh2
}
}
package Demo1801;
import java.util.ArrayList;
public class Demo04ArrayListEach {
public static void main(String[] args) {
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("one");
arrayList.add("two");
arrayList.add("three");
arrayList.add("four");
arrayList.add("five");
for (int i = 0; i < arrayList.size(); i++) {
String name = arrayList.get(i);
System.out.println("第" + (i + 1) + "个元素名字为" + name);
}
}
}
ArrayList集合存储基本数据类型
package Demo1801;
import java.util.ArrayList;
/*
* 如果希望向集合ArrayList当中存储基本类型数据,必须使用基本类型对应得包装类。
*
* 基本类型 包装类(引用类型,包装类都位于java.lang包下)
* byte Byte
* short Short
* int Integer[特殊]
* long Long
* float Float
* double Double
* char Character[特殊]
* boolean Boolean
*
* 从JDK1.5开始,支持自动装箱、自动拆箱。
* 自动装箱:基本类型--》包装类型(引用类型)
* 自动拆箱:包装类型--》基本类型
*
* */
public class Demo05ArrayListBasic {
public static void main(String[] args) {
ArrayList<String> arrayList = new ArrayList<>();
//错误写法,泛型只能是引用类型,不能是基本类型
//ArrayList<int> arrayList1 = new ArrayList<>();
ArrayList<Integer> array = new ArrayList<>();
array.add(1);
array.add(3);
System.out.println(array);
}
}
练习1:存储随机数字
package Demo1801;
/*
题目:
生成6个1-33之间的随机整数,添加到集合,并遍历集合
思路:
1.创建存储整数的集合;
2.创建随机数对象
3.生成6个随机整数,利用循环放入集合中,要注意random要加一
4.遍历集合
* */
import java.util.ArrayList;
import java.util.Random;
public class Demo06ArrayListRandom {
public static void main(String[] args) {
//创建一个集合
ArrayList<Integer> arrayList = new ArrayList<>();
//创建随机数
Random randomInt = new Random();
//利用循环将随机数放入,注意范围
for (int i = 0; i < 6; i++) {
arrayList.add((randomInt.nextInt(33) + 1));
System.out.println("集合中第" + (i + 1) + "个随机整数添加了");
}
System.out.println("===集合中的随机数如下===");
System.out.println(arrayList);
//利用循环遍历输出
for (int i = 0; i < arrayList.size(); i++) {
System.out.println("第" + (i + 1) + "个元素为:" + arrayList.get(i));
}
}
}
练习2:存储学生对象
package Demo1801;
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package Demo1801;
/*
* 题目:
*自定义四个学生对象,添加到集合,并遍历。
*
* 思路:
* 1.创建一个学生类,名字,年龄;
* 2.创建四个学生对象;
* 3.创建一个集合,将四个学生对象添加进去;
* 4.遍历集合;
* */
import java.util.ArrayList;
public class Demo07ArrayListStudent {
public static void main(String[] args) {
//2.创建四个学生对象
Student stu1 = new Student("one", 21);
Student stu2 = new Student("two", 22);
Student stu3 = new Student("three", 23);
Student stu4 = new Student("four", 24);
//3.创建一个集合
ArrayList<Student> arrayList = new ArrayList<>();
//将对象添加到集合中
arrayList.add(stu1);
arrayList.add(stu2);
arrayList.add(stu3);
arrayList.add(stu4);
System.out.println("当前集合中的对象为:" + arrayList);//[Demo1801.Student@7530d0a, Demo1801.Student@27bc2616, Demo1801.Student@3941a79c, Demo1801.Student@506e1b77]
//4.遍历输出
for (int i = 0; i < arrayList.size(); i++) {
Student stu = arrayList.get(i);
System.out.println("集合中第" + (i + 1) + "个学生是:" + stu.getName() + "今年" + stu.getAge());
/*
* 集合中第1个学生是:one今年21
集合中第2个学生是:two今年22
集合中第3个学生是:three今年23
集合中第4个学生是:four今年24
* */
}
}
}
练习3:按指定格式输出遍历 集合结果
package Demo1801;
/*
* 练习三:
* 定义以指定格式打印集合的方法(ArrayList类型作为参数),使用{}括起来集合,使用@分隔每个元素。
* 格式参照{元素@元素@元素}
*
* 思路:
* 1。定义一个参数为ArrayList的方法(默认打印出来的元素之间还有空格)
* 2.
* */
import java.util.ArrayList;
public class Demo08ArrayListPrint {
public static void main(String[] args) {
//2.创建一个集合对象
ArrayList<Integer> array = new ArrayList<>();
//3.将集合对象放入内容
array.add(1);
array.add(3);
array.add(5);
//4.调用集合打印方法
arrayListPrint(array);//{1@3@5}
}
//1.定义一个打印集合的方法
public static void arrayListPrint(ArrayList<Integer> arrayList) {
System.out.print("{");
for (int i = 0; i < arrayList.size(); i++) {
if (i != arrayList.size() - 1){
System.out.print(arrayList.get(i) + "@");
}else {
//最后一个元素的特殊情况
System.out.println(arrayList.get(i) + "}");
}
}
}
}
练习4:筛选集合中的偶数
package Demo1801;
/*
* 练习四:
* 用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到小集合当中
* 要求使用自定义的方法来实现筛选
* */
import java.util.ArrayList;
import java.util.Random;
public class Demo09ArrayListReturn {
public static void main(String[] args) {
//1.创建一个大集合
ArrayList<Integer> array1 = new ArrayList<>();
//2.产生随机数,将随机数放入大集合中
Random num = new Random();
for (int i = 0; i < 20; i++) {
int ran = num.nextInt(51);
array1.add(ran);
}
System.out.println(array1);//[41, 13, 21, 14, 39, 34, 47, 48, 23, 35, 0, 47, 32, 44, 26, 5, 13, 43, 9, 16]
//4.传入大集合,得到小集合
System.out.println(select(array1));//[14, 34, 48, 0, 32, 44, 26, 16]
}
//3.定义返回值为小集合的方法,参数为大集合
public static ArrayList<Integer> select(ArrayList<Integer> arrayList) {
//1.定义一个小集合
ArrayList<Integer> array2 = new ArrayList<>();
//2.偶数筛选,若是偶数则赋值给小集合
for (int i = 0; i < arrayList.size(); i++) {
int temp = arrayList.get(i);
if (temp % 2 == 0) {
array2.add(temp);
}
}
//3.返回小集合
return array2;
}
}