集合和数组的特点对比
- 共同点:都是存储数据的容器
- 不同点:数组的容量时固定的,集合的容量是可变的
- 如果存储的数据,长度经常发生改变,推荐使用集合
ArrayList
构造方法
方法名 | 说明 |
---|
public ArrayList() | 创建一个空的集合对象 |
public boolean add(E e) | 将指定的元素追加到集合的末尾 |
public void add(int index, E element) | 在此集合中指定的位置插入指定的元素 |
常用方法
方法名 | 说明 |
---|
public boolean remove(Object o) | 删除指定的元素,返回删除是否成功 |
public E remove(int index) | 删除指定索引处的元素,返回被删除的元素 |
public E set(int index,E element) | 修改指定索引处的元素,返回修改的元素 |
public E get(int index) | 返回指定索引处的元素 |
public int size | 返回集合中的元素个数 |
代码
键盘录入三个字符串数据并添加到集合,然后遍历集合在控制台打印
package cn.cdw.demo;
import java.util.ArrayList;
import java.util.Scanner;
public class Demo34 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<String> arrayList = new ArrayList<>();
for (int i = 0; i < 3; i++) {
System.out.print("请输入第" + (i + 1) + "个字符串:");
String s = scanner.nextLine();
arrayList.add(s);
}
System.out.println(arrayList);
System.out.println("===================================");
for (int i = 0; i < arrayList.size(); i++) {
System.out.println(arrayList.get(i));
}
}
}
键盘录入3个学生对象的姓名,年龄并保存到集合中,然后遍历出学生对象的信息
package cn.cdw.demo;
import java.util.ArrayList;
import java.util.Scanner;
public class Demo35 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<Student> studentArrayList = new ArrayList<>();
for (int i = 0; i < 3; i++) {
System.out.print("请输入第"+(i+1)+"个学生的姓名:");
String name = scanner.next();
System.out.print("请输入第"+(i+1)+"个学生的年龄:");
int age = scanner.nextInt();
Student student = new Student();
student.setName(name);
student.setAge(age);
studentArrayList.add(student);
}
for (int i = 0; i < studentArrayList.size(); i++) {
Student student = new Student();
student = studentArrayList.get(i);
System.out.println(student.getName() + "今年" + student.getAge() + "岁了");
}
}
}
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 cn.cdw.demo;
import java.util.ArrayList;
import java.util.Scanner;
public class Demo36 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入你想要删除的数据:");
String string = scanner.nextLine();
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("a");
arrayList.add("b");
arrayList.add("abc");
arrayList.add("d");
arrayList.add("abc");
arrayList.add("e");
for (int i = 0; i < arrayList.size(); i++) {
if (string.equals(arrayList.get(i))) {
arrayList.remove(i);
i--;
}
}
System.out.println(arrayList);
}
}
遍历存储学生对象的集合,筛选出年龄小于等于18的学生对象存储到另一个集合中
package cn.cdw.demo;
import java.util.ArrayList;
public class Demo37 {
public static void main(String[] args) {
ArrayList<Student1> student1ArrayList = new ArrayList<>();
ArrayList<Student1> newArrayList = new ArrayList<>();
Student1 s1 = new Student1("小明", 12);
Student1 s2 = new Student1("小李", 22);
Student1 s3 = new Student1("小红", 17);
Student1 s4 = new Student1("小小", 23);
Student1 s5 = new Student1("小哥", 15);
student1ArrayList.add(s1);
student1ArrayList.add(s2);
student1ArrayList.add(s3);
student1ArrayList.add(s4);
student1ArrayList.add(s5);
for (int i = 0; i < student1ArrayList.size(); i++) {
Student1 student1 = new Student1();
student1 = student1ArrayList.get(i);
if (student1.getAge() <= 18) {
newArrayList.add(student1);
}
}
for (int i = 0; i < newArrayList.size(); i++) {
Student1 student1 = new Student1();
student1 = newArrayList.get(i);
System.out.println(student1.getName() + "今年" + student1.getAge() + "岁了");
}
}
}
class Student1{
private String name;
private int age;
public Student1() {
}
public Student1(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 cn.cdw.demo;
import java.util.ArrayList;
import java.util.Scanner;
public class Demo38 {
static ArrayList<Student2> arrayList = new ArrayList();
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
end:while (true) {
System.out.println("========================学生管理程序========================");
System.out.println("1 添加学生");
System.out.println("2 删除学生");
System.out.println("3 修改学生");
System.out.println("4 显示所有学生");
System.out.println("5 退出程序");
System.out.print("友情提示:请输入你的选择:");
String num = scanner.nextLine();
switch (num) {
case "1":
add();
break;
case "2":
delete();
break;
case "3":
update();
break;
case "4":
show();
break;
case "5":
System.out.println("谢谢使用...");
break end;
default:
System.out.println("输入有误,请重新输入");
}
}
}
public static void add() {
Scanner scanner = new Scanner(System.in);
String id;
while (true) {
System.out.print("请输入学生编号:");
id = scanner.next();
int index = getIndex(arrayList, id);
if (index != -1) {
System.out.print("该学生编号已存在,请重新输入学生编号:");
id = scanner.next();
}else {
break;
}
}
System.out.print("请输入姓名:");
String name = scanner.next();
System.out.print("请输入年龄:");
int age = scanner.nextInt();
Student2 student2 = new Student2(id,name,age);
arrayList.add(student2);
show();
}
public static void delete() {
show();
Scanner scanner = new Scanner(System.in);
System.out.print("请输入你想要删除学生的编号:");
String id = scanner.next();
int index = getIndex(arrayList, id);
if (index != -1) {
for (int i = 0; i < arrayList.size(); i++) {
Student2 student2 = arrayList.get(i);
if (id.equals(student2.getId())) {
arrayList.remove(i);
}
}
}else {
System.out.println("数据不存在");
}
show();
}
public static void update() {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入你想要修改学生的编号:");
String id = scanner.next();
int index = getIndex(arrayList, id);
if (index != -1) {
System.out.print("请输入修改姓名:");
String name = scanner.next();
System.out.print("请输入修改年龄:");
int age = scanner.nextInt();
Student2 student2 = arrayList.get(index);
student2.setId(id);
student2.setName(name);
student2.setAge(age);
}else {
System.out.println("数据不存在");
}
show();
}
public static void show() {
for (int i = 0; i < arrayList.size(); i++) {
Student2 student2 = new Student2();
student2 = arrayList.get(i);
System.out.println("id:"+student2.getId()+" 姓名:" + student2.getName() + " 年龄:" + student2.getAge());
}
}
public static int getIndex(ArrayList<Student2> arrayList,String id) {
int index = -1;
for (int i = 0; i < arrayList.size(); i++) {
Student2 student2 = arrayList.get(i);
String sid = student2.getId();
if(id.equals(sid)) {
index = i;
}
}
return index;
}
}
class Student2 {
private String id;
private String name;
private int age;
public Student2() {
}
public Student2(String id,String name, int age) {
this.id=id;
this.name = name;
this.age = age;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
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;
}
}