用法举例:
/**
* @author yuanxuan-chen
* @date 2020-03-04 12:49
*/
import java.util.ArrayList;
import java.util.List;
public class NP_ArrayList {
public static void main(String[] args) {
/**
* 定义ArrayList and List, list会快些
*/
ArrayList<String> arrayList = new ArrayList<String>();
ArrayList<String> list = new ArrayList<String>();
/**
* 增加
* 1, 将字符串放在下表为1的地方,其他往后移动
*/
list.add("123");
list.add("456");
list.add("789");
list.add(1, "string");
/**
* 将list2,加到list1后面
*/
List<String> list2 = new ArrayList<>();
list2.add("b");
list2.add("b");
list.addAll(list2);
/**
* 删除,返回的值为删除的值
*/
String r = list.remove(2);
/**
* 求大小
*/
int size = list.size();
/**
* 返回下标为0的数据
*/
String get = list.get(2);
/**
* List遍历输出
*/
for(String i : list){
System.out.println(i);
}
for(int i = 0; i < list.size(); i++){
System.out.print(list.get(i) + " ");
}
/**
* ArrayList To 数组
*/
String[] a = new String[list.size()];
list.toArray(a);
for(String i : a){
System.out.println(i);
}
/**
* 1.判断list是否含有a
* 2.判断list是否含有list2
*/
boolean boo = list.contains("a");
boo = list.containsAll(list2);
}
}
实际例子:
import java.util.ArrayList;
import java.util.List;
/**
* @author yuanxuan-chen
* @date 2020-03-04 22:33
*/
public class StudentList {
public static void main(String[] args) {
/**
* 建立一个list1,包含 “张三,18岁,80分,1班”,“李四,19岁,100分,1班”,“王五,17岁,59分,1班”。
*/
List<Student> list1 = new ArrayList<>();
list1.add(new Student("张三", 18, 8, 1));
list1.add(new Student("李四", 19, 100, 1));
list1.add(new Student("王五", 17, 59, 1));
/**
* 建立一个list2,包含 “赵六,18岁,85分,2班”,“刘七,19岁,93分,2班”,“孙八,17岁,55分,2班”。
*/
List<Student> list2 = new ArrayList<>();
list2.add(new Student("赵六", 18, 85, 2));
list2.add(new Student("刘七", 19, 93, 2));
list2.add(new Student("孙八", 17, 55, 2));
/*
* (1)整合两个list学生信息成一个新的list
*/
System.out.println("(1)整合两个list学生信息成一个新的list");
List<Student> list = new ArrayList<>();
list.addAll(list1);
list.addAll(list2);
for (Student i : list) {
System.out.println(i);
}
/**
* (2)按照分数给出学生信息排名
*/
System.out.println("(2)按照分数给出学生信息排名");
list.sort((o1, o2) -> o1.getStudentMark() > o2.getStudentMark() ? -1 : 0);
for (Student i : list) {
System.out.println(i);
}
/**
* (3)输出不及格的学生信息v
*/
System.out.println("(3)输出不及格的学生信息");
for (Student i : list) {
/**
* 小于60的值输出
*/
if(60 > i.getStudentMark()) {
System.out.println(i);
}
}
/**
* (4)查找张三的信息
*/
System.out.println("(4)查找张三的信息");
for (Student i : list) {
/**
* 输出张三
*/
if("张三".equals(i.getStudentName())) {
System.out.println(i);
}
}
/**
* (5)从list剔除年龄大于18岁的学生信息
*/
System.out.println("(5)从list剔除年龄大于18岁的学生信息");
for (int i = 0; i<list.size(); i++) {
/**
*判断年龄是否大于18, 是就删除
*/
if(18 < list.get(i).getStudentAge()) {
list.remove(i--);
}
}
/**
* 遍历输出
*/
for (Student i : list) {
System.out.println(i);
}
}
}
import java.util.Objects;
/**
* 实体类Student类,属性:姓名,年龄,成绩,班级
* @author yuanxuan-chen
* @date 2020-03-04 19:32
*/
public class Student {
/**
* 姓名
*/
private String studentName;
/**
* 年龄
*/
private int studentAge;
/**
* 成绩
*/
private double studentMark;
/**
* 班级
*/
private int studentGrade;
/**
* 构造函数
*/
public Student(String studentName, int studentAge, double studentMark, int studentGrade) {
this.studentName = studentName;
this.studentAge = studentAge;
this.studentMark = studentMark;
this.studentGrade = studentGrade;
}
/**
* @return 返回姓名
*/
public String getStudentName() {
return studentName;
}
/**
* @return 返回学生年龄
*/
public int getStudentAge() {
return studentAge;
}
/**
* @return 返回学生成绩
*/
public double getStudentMark() {
return studentMark;
}
/**
* @return 返回学生成绩
*/
public int getStudentGrade() {
return studentGrade;
}
/**
* 输出格式:“张三,18岁,80分,1班”
*/
@Override
public String toString() {
return String.format("%s, %d岁, %6.2f分, %d班", studentName, studentAge, studentMark, studentGrade);
}
@Override
public boolean equals(Object obj) {
/**
* 判断传入的类,是否为 目标实体类
*/
if (obj instanceof Student) {
/**
* 强制类型转换
*/
Student s = (Student) obj;
/**
* 设置比较方法
*/
return this.studentName.equals(s.getStudentName()) && this.studentAge == s.getStudentAge() && this.studentMark == s.getStudentMark() && this.studentGrade == s.getStudentGrade();
}
return false;
}
@Override
public int hashCode() {
/**
* 由idea自动生成
* Objects.hash 自动生成hash散列表
*/
return Objects.hash(studentName, studentAge, studentMark, studentGrade);
}
}