ArrayList集合
ArrayList构造、添加和常用方法
import java.util.ArrayList;
/*
ArrayList:提供一种存储空间可变的存储模型,存储的数据容量可以发生改变
ArrayList构造方法:
public ArrayList():创建一个空的集合对象
ArrayList添加方法:
public boolean add<E e>:将指定的元素追加到此集合的末尾
public void add(int index,E element):在此集合中的指定位置插入指定的元素
ArrayList常用方法:
public boolean remove(Object o):删除指定的元素,返回删除是否成功
public boolean remove(int index):删除指定索引处的元素,返回被删除的元素
public E set(int index.E element):修改指定索引出的元素,返回被修改的元素
public E get(int index):返回指定索引处的元素
public int size():返回集合中的元素的个数
*/
public class ArrayListDemo {
public static void main(String[] args) {
ArrayList<String> array = new ArrayList<>();
//public boolean add<E e>:将指定的元素追加到此集合的末尾
array.add("Hello");
array.add("World");
// public void add(int index,E element):在此集合中的指定位置插入指定的元素
array.add(1, "Your");
System.out.println("array:" + array);
// public boolean remove(Object o):删除指定的元素,返回删除是否成功
//System.out.println(array.remove("World"));删除array中的"World"
// public boolean remove(int index):删除指定索引处的元素,返回被删除的元素
//System.out.println(array.remove(1));删除array中的索引为1的元素
// public E set(int index.E element):修改指定索引出的元素,返回被修改的元素
//System.out.println(array.set(1,"world"));修改array中的索引为1的元素,并返回"world"
// public E get(int index):返回指定索引处的元素
//System.out.println(array.get(1));返回array中的索引为1的元素
// public int size():返回集合中的元素的个数
System.out.println(array.size());//返回集合中的元素的个数
}
}
ArrarList存储字符串并遍历
import java.util.ArrayList;
public class ArrayListFori {
public static void main(String[] args) {
ArrayList<String> array = new ArrayList<String>();
array.add("邓超");
array.add("谢娜");
array.add("迪丽热巴");
for (int i = 0; i < array.size(); i++) {
System.out.println(array.get(i));
}
}
}
ArrarList存储学生对象并遍历
/*
学生类
*/
public class Student {
//成员变量
private String name;
private int age;
//无参构造
public Student() {
}
//带参构造
public Student(String name, int age) {
this.name = name;
this.age = age;
}
//getter/setter方法
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;
}
}
/*
创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
*/
import java.util.ArrayList;
public class ArrayListTest {
public static void main(String[] args) {
//创建集合对象
ArrayList<Student> array = new ArrayList<>();
//创建学生对象
Student s1 = new Student("邓超",45);
Student s2 = new Student("一眉道长",70);
Student s3 = new Student("孙俪",35);
//添加学生对像到集合中
array.add(s1);
array.add(s2);
array.add(s3);
//遍历集合,采用通用遍历格式实现
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
System.out.println(s.getName() +","+ s.getAge());
}
}
}
ArrarList存储学生对象并遍历升级版
/*
学生类
*/
public class Student {
//成员变量
private String name;
private int age;
//无参构造
public Student() {
}
//有参构造
public Student(String name, int age) {
this.name = name;
this.age = age;
}
//getter/setter方法
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;
}
}
import java.util.ArrayList;
import java.util.Scanner;
/*
创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台
遍历该集合 学生的姓名和年龄来自于键盘录入
*/
public class ArrayListTest {
public static void main(String[] args) {
//创建集合对象
ArrayList<Student> array = new ArrayList<>();
addArrayLise(array);
addArrayLise(array);
addArrayLise(array);
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
System.out.println(s.getName() + "," + s.getAge());
}
}
public static void addArrayLise(ArrayList<Student> array) {
//创建学生对象
Student s = new Student();
//创建Scanner对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生姓名:");
String name = sc.nextLine();
System.out.println("请输入学生年龄:");
int age = sc.nextInt();
s.setName(name);
s.setAge(age);
array.add(s);
}
}
学生管理系统
/*
学生类
*/
public class Student {
//成员变量
private String number;
private String name;
private String age;
private String phone;
//无参构造
public Student() {
}
//带参构造
public Student(String number, String name, String age, String phone) {
this.number = number;
this.name = name;
this.age = age;
this.phone = phone;
}
//getter/setter方法
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
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;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
import java.util.ArrayList;
import java.util.Scanner;
/*
学生管理类
*/
public class StudentManager {
public static void main(String[] args) {
ArrayList<Student> array = new ArrayList<>();
Scanner sc = new Scanner(System.in);
for (; ; ) {
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("请输入你的选项:");
int num = sc.nextInt();
if (num == 1) {
addStudent(array);
} else if (num == 2) {
delStudent(array);
} else if (num == 3) {
updateStudent(array);
} else if (num == 4) {
findStudent(array);
} else if (num == 5) {
break;
} else {
System.out.println("输入有误");
}
}
System.out.println("欢迎使用");
}
//添加学生方法
public static void addStudent(ArrayList<Student> array) {
//创建学生对象
Student s = new Student();
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生学号:");
String number = sc.nextLine();
int index = -1;
for (int i = 0; i < array.size(); i++) {
Student s1 = array.get(i);
if (s1.getNumber().equals(number)) {
index = i;
break;
}
}
if (index == -1) {
System.out.println("请输入学生姓名:");
String name = sc.nextLine();
System.out.println("请输入学生年龄:");
String age = sc.nextLine();
System.out.println("请输入学生手机号:");
String phone = sc.nextLine();
s.setNumber(number);
s.setName(name);
s.setAge(age);
s.setPhone(phone);
array.add(s);
System.out.println("添加成功!");
} else {
System.out.println("该学号已存在");
}
}
//删除学生方法
public static void delStudent(ArrayList<Student> array) {
Scanner sc = new Scanner(System.in);
n:
for (; ; ) {
System.out.println("请输入要删除学生的学号:");
String number = sc.nextLine();
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
if (s.getNumber().equals(number)) {
array.remove(i);
System.out.println("删除成功!");
return;
}
}
System.out.println("查无此人");
System.out.println("退出删除输入“n”,继续请输入其他:");
String s1 = sc.nextLine();
if (s1.equals("n")) {
return;
}
}
}
//查看所有学生方法
public static void findStudent(ArrayList<Student> array) {
Scanner sc = new Scanner(System.in);
if (array.size() == 0) {
System.out.println("暂时还没有学生,输入“y”去添加学生,退出输入其他");
String s = sc.nextLine();
if (s.equals("y")){
addStudent(array);
}else {
return;
}
} else {
System.out.println("学号" + "\t\t\t" + "姓名" + "\t\t" + "年龄" + "\t\t" + "手机号");
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
System.out.println(s.getNumber() + "\t\t\t\t" + s.getName() + "\t\t" + s.getAge() + "岁\t\t" + s.getPhone());
}
}
}
//修改学生信息
public static void updateStudent(ArrayList<Student> array) {
Scanner sc = new Scanner(System.in);
for (; ; ) {
System.out.println("请输入要修改学生的学号:");
String number = sc.nextLine();
for (int i = 0; i < array.size(); i++) {
Student s1 = array.get(i);
if (s1.getNumber().equals(number)) {
System.out.println("请输入学生的新姓名:");
String name = sc.nextLine();
System.out.println("请输入学生的新年龄:");
String age = sc.nextLine();
System.out.println("请输入学生的新手机号:");
String phone = sc.nextLine();
Student s = new Student();
s.setNumber(number);
s.setName(name);
s.setAge(age);
s.setPhone(phone);
array.set(i, s);
System.out.println("修改成功!");
return;
}
}
System.out.println("查无此人");
System.out.println("退出修改输入“n”,继续请输入其他:");
String s1 = sc.nextLine();
if (s1.equals("n")) {
return;
}
}
}
}
习题
第一题:分析以下需求并实现
1.创建一个ArrayList集合,用于存储一些字符串
2.通过键盘录入5个字符串,保存到集合中
3.遍历集合,打印每一个字符串
第二题:分析以下需求并实现
1.创建一个ArrayList集合,用于存储一些字符串:"abc","def","def","ghi","def","hij","jkol"
2.遍历集合,统计集合中"def"字符串一共出现了多少个
3.将集合中的所有"def"字符串删除。打印删除后的集合元素
第三题:分析以下需求并实现
1.定义"学员"类Student,类中包含以下成员:
成员属性:
snum (学号):int类型, score(成绩):double类型,属性使用private修饰
为所有属性提供set/get方法。
2.定义类:Test06,类中定义main()方法,依次完成以下要求:
2.1 实例化3个Student对象,3个对象的属性分别为:1001, 55.0、1002, 66.6、1003, 77.0
2.2 创建一个ArrayList集合,分别将上面的3个Student对象添加到集合中
2.3 遍历集合,删除集合中元素的学号为1002的元素,并打印集合中剩余元素的学号和成绩
昨日习题答案
第一题:分析以下需求,并用代码实现
1.定义String getStr()方法
功能描述:
获取长度为5的随机字符串,字符串由随机的5个大小写字母组成
2.在main方法中调用上述方法,并打印结
/*大写:65-90
小写:97-122*/
import java.util.Random;
public class randomStr {
public static void main(String[] args) {
//调用方法
String str = getStr();
//输出
System.out.println(str);
}
public static String getStr() {
//构造StringBuilder对象
StringBuilder sb = new StringBuilder();
Random r = new Random();
while (true) {
if (sb.length() == 5) {
//控制字符串长度为5
break;
} else {
//随机生成65-122的随机数
int a = r.nextInt(58) + 65;
//判断生成的随机数在不在大写和小写字母范围内
if ((a >= 65 && a <= 90) || (a >= 97 && a <= 122)) {
//将数字转换成相应的字母
char cc = (char) a;
//然后将字符添加到sb中
sb.append(cc);
} else {
continue;
}
}
}
String s = sb.toString();
return s;
}
}
第二题: 分析以下需求,并用代码实现
1.键盘录入一个字符串
2.将该字符串变成字符数组(不能使用toCharArray()方法)
3.将字符数组中的所有大写字母变成小写字母(不能使用toLowerCase()方法)
4.如果第一位和最后一位的内容不相同,则交换
5.将字符数组中索引为偶数的元素变成'~'
6.打印数组元素的内容
public class StringToArray {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串");
String line = sc.nextLine();
char[] ch = new char[line.length()];
//将该字符串变成字符数组(不能使用toCharArray()方法)
StringToArray(line, ch);
//打印数组
printArray(ch);
//将字符数组中的所有大写字母变成小写字母(不能使用toLowerCase()方法)
HighToLower(ch);
//打印数组
printArray(ch);
//如果第一位和最后一位的内容不相同,则交换
changeArray(ch);
//打印数组
printArray(ch);
//将字符数组中索引为偶数的元素变成'~'
changeDouble(ch);
//打印数组
printArray(ch);
}
public static void StringToArray(String line, char[] ch) {
for (int i = 0; i < line.length(); i++) {
ch[i] = line.charAt(i);
}
}
public static void HighToLower(char[] ch) {
for (int i = 0; i < ch.length; i++) {
//首先判断是不是大写字母
//将字符转成对应的数字
int a = (int) ch[i];
if (a >= 65 && a <= 90) {
//转换成小写字母对应的数字
a = a + 32;
//把数字转换成小写字母并存入数组
ch[i] = (char) a;
} else {
//不是大写字母
continue;
}
}
}
public static void changeArray(char[] ch) {
//如果最后一个元素和第一个不相同,就交换
if (ch[0] != ch[ch.length - 1]) {
char temp = ch[0];
ch[0] = ch[ch.length - 1];
ch[ch.length - 1] = temp;
}
}
public static void changeDouble(char[] ch) {
//遍历数组,判读偶数位,将偶数位置元素更换为~
for (int i = 0; i < ch.length; i++) {
if (i % 2 == 0) {
ch[i] = '~';
}
}
}
public static void printArray(char[] ch) {
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int i = 0; i < ch.length; i++) {
if (i == ch.length - 1) {
sb.append(ch[i]);
} else {
sb.append(ch[i] + ", ");
}
}
sb.append("]");
System.out.println(sb.toString());
}
}
来源:CSDN
作者:绿巨人的大裤衩
链接:https://blog.csdn.net/nickname_million/article/details/103245437