通过和数组比较
集合也是用来存放一组数据的,相比于数组集合的好处是它的长度并不固定
自动扩容
集合存储的是引用数据类型,无法存储基本数据类型,需要将基本数据类型变成其包装类
// 两者定义的不同 存储的不同 初始长度限定的不同(list初始为0)
ArrayList <Integer> list = new ArrayList<>();
System.out.println(list);
int [] array = new int [4];
System.out.println(Arrays.toString(array));
输出:
[]
[0, 0, 0, 0]
// 两者定义的不同 存储的不同 初始长度限定的不同(list初始为0)
ArrayList <Integer> list = new ArrayList<>();
System.out.println(list);
int [] array = new int [4];
// 集合的增加
list.add(10);
list.add(6);
list.add(14);
list.add(8);
System.out.println(list);
// 集合的删除 (删除指定位置的元素 删除遍历第一次遇到的指定值的元素)
list.remove(1);
list.remove(new Integer(8));
System.out.println(list);
// 集合的修改
list.set(0,1);
System.out.println(list);
// 集合的查询和遍历
int m = list.get(0);
System.out.println(m);
System.out.println("遍历");
for (Integer integer : list) {
System.out.println(integer);
}
输出:
[]
[10, 6, 14, 8]
[10, 14]
[1, 14]
1
遍历
1
14
学生类
private String name;
private Integer age;
public Student() {
}
public Student(String name, Integer age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
引用类型的创建
ArrayList<Student> list = new ArrayList<>();
list.add(new Student("Tom", 12));
list.add(new Student("Jack", 13));
list.add(new Student("Alice", 12));
for(Student student : list){
System.out.println(student);
}
输出
Student{name='Tom', age=12}
Student{name='Jack', age=13}
Student{name='Alice', age=12}
实体类:
public class Phone {
private String brand;
private int price;
public Phone() {
}
public Phone(String brand, int price) {
this.brand = brand;
this.price = price;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
@Override
public String toString() {
return "Phone{" +
"brand='" + brand + '\'' +
", price=" + price +
'}';
}
实现类
public class ArrayListDemo3 {
public static void main(String[] args) {
ArrayList<Phone> list = new ArrayList<>();
list.add(new Phone("小米", 1000));
list.add(new Phone("苹果", 5000));
list.add(new Phone("锤子", 2999));
// 直接定义插入
// ArrayList<Phone> re = new ArrayList<>();
// for(Phone phone : list){
// if(phone.getPrice()<3000){
// re.add(phone);
// }
// }
// System.out.println(re);
ArrayList re = new ArrayList<>();
re = get_low(list, 3000);
System.out.println(re);
}
// 通过一个方法
public static ArrayList get_low(ArrayList<Phone> list, int price){
ArrayList <Phone> re = new ArrayList<>();
for(Phone phone : list){
if(phone.getPrice()<price){
re.add(phone);
}
}
return re;
}
返回
[Phone{brand='小米', price=1000}, Phone{brand='锤子', price=2999}]