1.集合:
是一个长度可变的容器(自动扩容)
2.集合存储数组数据类型的特点:
1. 可以存储引用数据类型2. 如果要存储基本数据类型,就要先把其变成对应的包装类才可以存储
3.集合和数组的对比
1.长度:数组的长度是固定的,集合的长度是可变的2.存储类型:数组可以存基本数组类型和引用数据类型,集合只能存储引用数据类型,如果要存储基本数据类型,要先把其变成对应的包装类才可以存储
扩展:
泛型:限定集合中存储数据的类型
<>就是泛型,在<>内写上你要存储的数据类型
代码演示:
import java.util.ArrayList;
public class IT梦 {
public static void main(String[] args) {
//创建集合的对象
ArrayList<String> list = new ArrayList<String>();
//在JDK7以后,后面<>内的数据类型可以省略不写,但是<>不能省略不写
ArrayList<String> list1 = new ArrayList<>();
/*现在我们创建的是ArrayList的对象,而ArrayList是Java已经写好的类
这个类在底层做了一些处理,打印对象不是地址值,而是集合中存储数据的内容
在打印时会用[]把所有的内容进行包裹
*/
System.out.println(list1);
}
}
ArrayList的成员方法:
代码演示:
import java.util.ArrayList;
public class IT梦 {
public static void main(String[] args) {
//创建集合的对象
ArrayList<String> list = new ArrayList<>();
//添加元素
boolean result = list.add("IT梦");
list.add("2023");
list.add("a");
list.add("b");
list.add("c");
//集合不管添加什么都是可以添加进去的,所以返回的都是true
System.out.println(result);
System.out.println(list);
//根据元素内容删除元素
boolean result1 = list.remove("IT梦");
//返回true或false表示是否被删除
System.out.println(result1);
System.out.println(list);
//根据索引删除元素
String s = list.remove(0);
//返回被删除的元素
System.out.println(s);
System.out.println(list);
//修改元素
String str = list.set(0, "d");
//返回原来的元素
System.out.println(str);
System.out.println(list);
//获取指定索引的元素
String s1 = list.get(2);
System.out.println(s1);
//获取集合的长度
int i = list.size();
System.out.println(i);
}
}
基本数据类型对应的包装类:
练习:
1.集合的遍历
需求:定义一个集合,添加字符串,并进行遍历遍历格式:[元素1, 元素2, 元素3]
答案:
[content_hide]
import java.util.ArrayList;
public class IT梦 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("IT梦");
list.add("2023");
list.add("abc");
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("]");
}
}
[/content_hide]
2.添加数字并遍历
需求:定义一个集合,添加数字,并进行遍历遍历格式:[元素1, 元素2, 元素3]
答案:
[content_hide]
import java.util.ArrayList;
public class IT梦 {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
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("]");
}
}
[/content_hide]
3.添加学生对象并遍历
需求:定义一个集合,添加一些学生对象,并进行遍历学生类的属性为:姓名,年龄
答案:
[content_hide]
import java.util.ArrayList;
public class IT梦 {
public static void main(String[] args) {
ArrayList<student> list = new ArrayList<>();
student s1 = new student("小明",18);
student s2 = new student("小李",19);
student s3 = new student("小亮",19);
list.add(s1);
list.add(s2);
list.add(s3);
for (int i = 0; i < list.size(); i++) {
student stu = list.get(i);
System.out.println(stu.getName() + ", " + stu.getAge());
}
}
}
[/content_hide]
4.添加学生对象并遍历(升级版)
需求:定义一个集合,添加一些学生对象,并进行遍历学生类的属性为:姓名,年龄要求:对象的数据来自键盘录入
答案:
[content_hide]
import java.util.ArrayList;
import java.util.Scanner;
public class IT梦 {
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();
System.out.println("请输入学生的年龄");
int age = sc.nextInt();
s.setName(name);
s.setAge(age);
list.add(s);
}
for (int i = 0; i < list.size(); i++) {
student stu = list.get(i);
System.out.println(stu.getName() + ", " + stu.getAge());
}
}
}
[/content_hide]
5.添加用户对象并判断是否存在
1.需求:定义一个集合,存入三个用户对象用户属性:id,username.password2.定义一个方法,根据id查找对应的用户信息如果存在返回true,如果不存在返回false
答案:
[content_hide]
import java.util.ArrayList;
import java.util.Scanner;
public class IT梦 {
public static void main(String[] args) {
ArrayList<user> list = new ArrayList<>();
user u1 = new user(1,"小明","xiaoming123");
user u2 = new user(2,"小李","xiaoli123");
user u3 = new user(3,"小亮","xiaoliang123");
list.add(u1);
list.add(u2);
list.add(u3);
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要查找的id");
int i = sc.nextInt();
boolean result = changeId(list,i);
System.out.println(result);
}
public static boolean changeId(ArrayList<user> list,int id){
for (int i = 0; i < list.size(); i++) {
user u = list.get(i);
if(u.getId() == id){
return true;
}
}
return false;
}
}
[/content_hide]
6.添加手机对象并返回要求的数据
需求:定义javabean类:phonephone属性:品牌,价格定义一个集合,存入三个手机对象分别为:小米,1000;苹果,8000;华为,2999定义一个方法,将价格低于3000的手机信息返回
答案:
[content_hide]
import java.util.ArrayList;
public class IT梦 {
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> phone = changePrice(list);
for (int i = 0; i < phone.size(); i++) {
phone p = phone.get(i);
System.out.println(p.getBrand() + ", " + p.getPrice());
}
}
//技巧:如果我门要返回多个数据,可以把这些数据先放到一个容器中,再把容器返回
public static ArrayList<phone> changePrice(ArrayList<phone> list){
ArrayList<phone> resultList = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
phone p = list.get(i);
if(p.getPrice() < 3000){
resultList.add(p);
}
}
return resultList;
}
}
[/content_hide]
© 版权声明
THE END
暂无评论内容