为什么要有集合?
集合是长度可变的容器,当添加集合里面的元素时,集合会自动扩容。
- 集合中五寸存储基本数据类型,若想存储,必须将其变为对应的包装类。
-
集合
- 泛型:限定集合中存储数据的类型
- ArrayList<String> list = new ArrayList<>();
- 尖括号就是泛型,表示集合里面存储数据的类型
- 此时创建的是ArrayList的对象,而ArrayList是java已经写好的一个类
- 这个类在底层做了一些处理
- 打印对象不是地址值,而是集合中存储数据的内容
- 在展示的时候会拿[ ]把所有的数据进行包裹
package com.itheima.test23;
import java.util.ArrayList;
public class ArrayListDemo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
// 2.添加元素
boolean result01 = list.add("aaa");
System.out.println(result01);
list.add("aaa");
list.add("bbb");
list.add("ccc");
// 3.删除元素
boolean result02 = list.remove("aaa");
System.out.println(result02);
boolean result03 = list.remove("ddd");
System.out.println(result03);
String str = list.remove(0);
System.out.println(str);
// 4.修改元素
String result04 = list.set(1, "ddd");
System.out.println(result04);
// 5.查询元素
String s = list.get(0);
System.out.println(s);
// 6.遍历
for (int i = 0; i < list.size(); i++) {
String st = list.get(i);
System.out.println(st);
}
System.out.println(list);
}
}
综合练习
集合的遍历方式
package com.itheima.test23;
import java.util.ArrayList;
public class ArrayListDemo01 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
System.out.print("[");
for (int i = 0; i < list.size(); i++) {
if (i == list.size() - 1) {
System.out.print(list.get(i));
} else {
System.out.print(list.get(i) + ", ");
}
}
System.out.println("]");
}
}
添加数字并遍历
package com.itheima.test23;
import java.util.ArrayList;
public class ArrayListDemo02 {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
System.out.print("[");
for (int i = 0; i < list.size(); i++) {
if (i == list.size() - 1) {
System.out.print(list.get(i));
} else {
System.out.print(list.get(i) + ", ");
}
}
System.out.println("]");
}
}
添加学生对象并遍历
package com.itheima.test23;
import java.util.ArrayList;
public class ArrayListDemo03 {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
Student s1 = new Student("lhj", 20);
Student s2 = new Student("fjq", 21);
list.add(s1);
list.add(s2);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getName() + "," + list.get(i).getAge());
}
}
}
package com.itheima.test23;
import java.util.ArrayList;
import java.util.Scanner;
public class ArrayListDemo04 {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 3; i++) {
Student s = new Student();
System.out.println("请输入学生的姓名:");
String name = sc.next();
s.setName(name);
System.out.println("请输入学生的年龄:");
int age = sc.nextInt();
s.setAge(age);
list.add(s);
}
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getName() + "," + list.get(i).getAge());
}
}
}
添加用户对象并判断是否存在
package com.itheima.test24;
import java.util.ArrayList;
public class UserTest {
public static void main(String[] args) {
ArrayList<User> list = new ArrayList<>();
User u1 = new User("heima001", "lhj", "1234");
User u2 = new User("heima002", "fjq", "12345");
User u3 = new User("heima003", "hwd", "123456");
list.add(u1);
list.add(u2);
list.add(u3);
boolean flag = contain(list, "heima001");
System.out.println(flag);
}
public static boolean contain(ArrayList<User> list, String id) {
for (int i = 0; i < list.size(); i++) {
User u = list.get(i);
String uid = u.getId();
if (uid.equals(id)) {
return true;
}
}
return false;
}
}
添加手机对象并返回要求的数据
package com.itheima.test25;
import java.util.ArrayList;
public class PhoneTest {
public static void main(String[] args) {
ArrayList<Phone> list = new ArrayList<>();
Phone p1 = new Phone("小米", 1000);
Phone p2 = new Phone("苹果", 8000);
Phone p3 = new Phone("锤子", 2999);
list.add(p1);
list.add(p2);
list.add(p3);
ArrayList<Phone> p = lowPrice(list, 3000);
for (int i = 0; i < p.size(); i++) {
System.out.println(p.get(i).getBrand() + "," + p.get(i).getPrice());
}
}
public static ArrayList<Phone> lowPrice(ArrayList<Phone> list, int price) {
ArrayList<Phone> ls = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
Phone p = list.get(i);
if (p.getPrice() < price) {
ls.add(p);
}
}
return ls;
}
}