为什么会出现集合类:
Java是面向对象编程语言,而面向对象编程语言对事物的描述都是通过对象来体现的。
为了方便对多个对象进行操作,必须对这多个对象进行存储,而要想对多个对象进行存储,就不能是一个基本的变量,而应该是一个容器类型的变量。
容器类型的数据有:StringBuilder,数组,集合…
StringBuilder的结果只能是一个字符串类型。
数组的长度是固定的,适应不了变化的需求。
集合类的特点:长度可变。
ArrayList< E >:大小可变数组的实现
< E >:是一种特殊的数据类型,泛型。
在出现E的地方我们使用引用数据类型替换即可
举例:ArrayList< String >,ArrayList< Student >
构造方法:ArrayList()
添加元素:
public boolean add(E e):添加元素
public void add(int index,E element):在指定的索引处添加一个元素
import java.util.ArrayList;
public class ArrList {
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建集合对象
ArrayList<String> array = new ArrayList<String>();
System.out.println("array:" + array);// array:[]
//add(E e):添加元素
array.add("abc");
array.add("de");
array.add("fgh");
System.out.println("array:"+array);// array:[abc, de, fgh]
//add(int index,E element):在指定的索引处添加一个元素
array.add(1, "000");
System.out.println("array:"+array);// array:[abc, 000, de, fgh]
}
}
获取元素
public E get(int index):返回指定索引处的元素
集合长度
public int size():返回集合中的元素的个数
删除元素
public boolean remove(Object o):删除指定的元素,返回删除是否成功
public E remove(int index):删除指定索引处的元素,返回被删除的元素
修改元素
public E set(int index,E element):修改指定索引处的元素,返回被修改的元素
import java.util.ArrayList;
public class ArrList {
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建集合对象
ArrayList<String> array = new ArrayList<String>();
//添加元素
array.add("abc");
array.add("de");
array.add("fgh");
System.out.println("get:" + array.get(0));// get:abc
System.out.println("size:" + array.size());// size:3
System.out.println("remove:" + array.remove("abc"));// remove:true
System.out.println("remove:" + array.remove("abc"));// remove:false
System.out.println("remove:" + array.remove(0));// remove:de
System.out.println("array:"+array);// array:[fgh]
System.out.println("set:" + array.set(0, "xyz"));// set:fgh
System.out.println("array:"+array);// array:[xyz]
}
}
ArrayList集合的遍历
通过size()和get()配合实现的
import java.util.ArrayList;
public class ArrList {
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建集合对象
ArrayList<String> array = new ArrayList<String>();
//添加元素
array.add("abc");
array.add("de");
array.add("fgh");
for(int i=0;i<array.size();i++) {
String s = array.get(i);
System.out.println(s);
}
}
}
给定一个字符串数组:{“张三丰”,“宋远桥”,“张无忌”,“殷梨亭”,“张翠山”,“莫声谷”},将数组中的元素添加到集合中,并把所有姓张的人员打印到控制台上。
分析:
A:定义字符串数组
B:创建集合对象
C:遍历字符串数组,获取到每一个字符串元素
D:把获取到的字符串元素添加到集合
E:遍历集合
要判断每一个字符串元素是否以"张"开头,如果是,就输出在控制台
import java.util.ArrayList;
public class ArrList {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 定义字符串数组
String[] strArray = { "张三丰", "宋远桥", "张无忌", "殷梨亭", "张翠山", "莫声谷" };
// 创建集合对象
ArrayList<String> array = new ArrayList<String>();
// 遍历字符串数组,获取到每一个字符串元素
for (int x = 0; x < strArray.length; x++) {
// 把获取到的字符串元素添加到集合
array.add(strArray[x]);
}
// 遍历集合
for (int x = 0; x < array.size(); x++) {
String s = array.get(x);
// 要判断每一个字符串元素是否以"张"开头
if (s.startsWith("张")) {
System.out.println(s);
}
}
}
}
张三丰
张无忌
张翠山
存储自定义对象并遍历
分析:
A:定义学生类
B:创建集合对象
C:创建学生对象
D:把学生对象作为元素添加到集合中
E:遍历集合
Student类
public class Student {
private String name;
private int age;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(String name, int age) {
super();
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;
}
}
Test类
import java.util.ArrayList;
public class ArrayListTest {
public static void main(String[] args) {
// 创建集合对象
ArrayList<Student> array = new ArrayList<Student>();
// 创建学生对象
Student s1 = new Student("abc", 28);
Student s2 = new Student("def", 30);
Student s3 = new Student("ghi", 25);
Student s4 = new Student("jkl", 18);
// 把学生对象作为元素添加到集合中
array.add(s1);
array.add(s2);
array.add(s3);
array.add(s4);
// 遍历集合
for (int x = 0; x < array.size(); x++) {
Student s = array.get(x);
System.out.println(s.getName() +" " + s.getAge());
}
}
}
abc 28
def 30
ghi 25
jkl 18
创建一个集合,存储学生对象,学生对象的数据来自于键盘录入,最后,遍历集合
注意:为了方便使用,我把学生类中的所有成员定义为String类型
分析:
A:定义学生类
B:创建集合对象
C:键盘录入数据,创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
D:把学生对象作为元素存储到集合中
E:遍历集合
public class Student {
private String name;
private String age;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(String name, String age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
import java.util.ArrayList;
import java.util.Scanner;
/*
* 创建一个集合,存储学生对象,学生对象的数据来自于键盘录入,最后,遍历集合
*
* 注意:为了方便使用,把学生类中的所有成员定义为String类型
*
* 分析:
* A:定义学生类
* B:创建集合对象
* C:键盘录入数据,创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
* D:把学生对象作为元素存储到集合中
* E:遍历集合
*
*/
public class StudentDemo {
public static void main(String[] args) {
//创建集合对象
ArrayList<Student> array = new ArrayList<Student>();
/*
//键盘录入数据,创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生姓名:");
String name = sc.nextLine();
System.out.println("请输入学生年龄:");
String age = sc.nextLine();
Student s = new Student();
s.setName(name);
s.setAge(age);
//把学生对象作为元素存储到集合中
array.add(s);
*/
//为了提高代码的复用性,把键盘录入数据给学生对象,并存储到集合中的动作用一个方法来实现
//调用方法//循环三次
addStudent(array);
addStudent(array);
addStudent(array);
//遍历集合
for(int x=0; x<array.size(); x++) {
Student s = array.get(x);
System.out.println(s.getName()+"---"+s.getAge());
}
}
/*
* 两个明确:
* 返回值类型:void
* 参数列表:ArrayList<Student> array
*/
public static void addStudent(ArrayList<Student> array) {
//键盘录入数据,创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生姓名:");
String name = sc.nextLine();
System.out.println("请输入学生年龄:");
String age = sc.nextLine();
Student s = new Student();
s.setName(name);
s.setAge(age);
//把学生对象作为元素存储到集合中
array.add(s);
}
}
请输入学生姓名:
zhangsan
请输入学生年龄:
26
请输入学生姓名:
lisi
请输入学生年龄:
30
请输入学生姓名:
wangwu
请输入学生年龄:
29
zhangsan---26
lisi---30
wangwu---29
学生管理系统 增删改查