文章目录
- 《Java-集合的基本使用及练习》
- 1. 集合的基本使用
- 1.1 集合的概念和特点
- 1.2 泛型概述
- 1.3 集合的创建和使用
- 1.3.1 集合的创建:
- 1.3.2 ArrayList集合的成员方法
- 1.3.2 ArrayList集合的成员方法的使用
- 2. 集合练习01-添加字符串、整数、字符
- 2.1 基本数据类型的包装类
- 2.2 创建添加字符串、整数、字符
- 3. 集合练习02-添加学生对象并遍历
- 4. 集合练习03-查找用户是否存在
- 5. 集合练习04-返回多个数据
《Java-集合的基本使用及练习》
1. 集合的基本使用
1.1 集合的概念和特点
- 集合:集合是一种容量大小可变的,用于存放元素的容器;
- 集合存储数据的特点:
- 集合只能存放引用数据类型,如果要存放基本数据类型要使用对应的包装类;
1.2 泛型概述
- 泛型概述
- 泛型的本质是参数化类型,把类型作为参数传递;
- 常见有泛型类、泛型接口、泛型方法
- 语法:<T,…> T称为类型占位符,表示一种引用类型;
- 好处:
- 1.提高代码的重用性;
- 2.防止类型类型转换异常,提高代码的安全性;
/*** 泛型类* 语法,类名<T>* T是类型占位符,表示一种应用类型,如果编写多个使用逗号隔开;* @param <T>*/public class GenericDemo<T> {//使用泛型T//1.泛型作为变量的类型T t;//2.泛型作为方法的参数类型public void show(T t){System.out.println(t);}//3.泛型作为方法的返回值类型public T getT(){return t;}
}
1.3 集合的创建和使用
1.3.1 集合的创建:
ArrayList<String> list = new ArrayList<>();
System.out.println(list)
打印的结果不是地址值,而是集合中存储的数据内容;其展示形式为[元素1、元素2、元素3]
1.3.2 ArrayList集合的成员方法
- 增
boolean add(E e)
:添加元素,返回值表示是否添加成功 - 删
boolean remove(E e)
:删除指定元素,返回值表示是否删除成功 - 删
E remove(int index)
:删除指定索引的元素,返回被删除元素 - 改
E set(int index,E e)
:修改指定索引下的元素,返回原来的元素 - 查
E get(int index)
:获取指定索引的元素 - 查
int size()
:集合的长度,也就是集合中元素的个数
1.3.2 ArrayList集合的成员方法的使用
public class DemoArrayList01 {public static void main(String[] args) {/*- 增 `boolean add(E e)`:添加元素,返回值表示是否添加成功- 删 `boolean remove(E e)`:删除指定元素,返回值表示是否删除成功- 删 `E remove(int index)`:删除指定索引的元素,返回被删除元素- 改 `E set(int index,E e)`:修改指定索引下的元素,返回原来的元素- 查 `E get(int index)`:获取指定索引的元素- 查 `int size()`:集合的长度,也就是集合中元素的个数*/ArrayList<String> list = new ArrayList<>();//1.增 `boolean add(E e)`:添加元素,返回值表示是否添加成功list.add("aaa");list.add("bbb");list.add("ccc");list.add("ddd");//2.删 `boolean remove(E e)`:删除指定元素,返回值表示是否删除成功boolean flag1 = list.remove("aaa");System.out.println(flag1); //trueSystem.out.println(list);//[bbb, ccc, ddd]//3.删 `E remove(int index)`:删除指定索引的元素,返回被删除元素String remove = list.remove(1);System.out.println(remove);//cccSystem.out.println(list);//[bbb, ddd]//4.改 `E set(int index,E e)`:修改指定索引下的元素,返回原来的元素String set = list.set(0,"mmm");System.out.println(set);//bbbSystem.out.println(list);//[mmm, ddd]//5.查 `E get(int index)`:获取指定索引的元素String str = list.get(0);System.out.println(str);//mmm//6.查 `int size()`:集合的长度,也就是集合中元素的个数int size = list.size();System.out.println(size);//2//7.遍历集合for (int i = 0; i < list.size(); i++) {String string = list.get(i);System.out.println(string);// mmm ddd}}
}
2. 集合练习01-添加字符串、整数、字符
2.1 基本数据类型的包装类
- byte ------ Byte
- short ------ Short
- char ------ Character
- int ------ Integer
- long ------ Long
- float ------ Float
- double ------ Double
- boolean ------- Boolean
2.2 创建添加字符串、整数、字符
public class DemoArrayList02 {public static void main(String[] args) {//1.创建集合,添加字符串元素ArrayList<String> strings = new ArrayList<>();strings.add("点赞了吗?");strings.add("收藏了吗?");strings.add("投币了吗?");strings.add("转发了吗?");System.out.println(strings);//[点赞了吗?, 收藏了吗?, 投币了吗?, 转发了吗?]//2.创建集合,添加数字ArrayList<Integer> integers = new ArrayList<>();integers.add(1);integers.add(2);integers.add(3);integers.add(4);System.out.println(integers);//[1, 2, 3, 4]//3.创建集合,添加字符ArrayList<Character> characters = new ArrayList<>();characters.add('a');characters.add('b');characters.add('c');characters.add('d');System.out.println(characters);//[a, b, c, d]}
}
3. 集合练习02-添加学生对象并遍历
- 要求使用键盘录入3个学生对象并遍历
public class DemoArrayList03 {public static void main(String[] args) {//1.创建学生集合ArrayList<Student01> list = new ArrayList<>();//2.循环创建3个学生对象Scanner scanner = new Scanner(System.in);int count = 1;for (int i = 0; i < 3; i++) {//2.1键盘录入学生的姓名和年龄System.out.println("请输入第"+ count + "个学生的姓名");String name = scanner.next();System.out.println("请输入第"+ count + "个学生的年龄");int age = scanner.nextInt();//2.2 利用输入的学生的姓名和年龄创建学生对象Student01 s = new Student01(name, age);//2.3 将创建的学生对象添加到集合中list.add(s);count++;}//3.打印集合中的学生对象System.out.println(list.toString());}
}
4. 集合练习03-查找用户是否存在
需求1:
- main方法中定义一个集合,存入三个用户对象。用户属性为:id,username,password。
- 要求:定义一个方法,根据id查找对应的用户信息。如果存在,返回true;如果不存在,返回false。
需求2:
3. 定义一个方法,根据id查找对应的用户信息如果存在,返回索引;如果不存在,返回-1
public class DemoArrayList04 {/*需求:1. main方法中定义一个集合,存入三个用户对象。用户属性为:id,username,password。2. 要求:定义一个方法,根据id查找对应的用户信息。如果存在,返回true;如果不存在,返回false。*/public static void main(String[] args) {//1.创建一个集合ArrayList<User> users = new ArrayList<>();//2.创建3个用户并添加到集合中User user1 = new User("lzly001", "zhangsan", "123456");User user2 = new User("lzly002", "lisi", "12345678");User user3 = new User("lzly003", "wangwu", "123qwe");users.add(user1);users.add(user2);users.add(user3);//4.根据id查找用户信息,返回true或falseboolean flag = contains(users, "lzly003");System.out.println(flag);//5.根据id查找用户信息,返回对应索引或-1int index = getIndex(users, "lzly003");System.out.println(index);}//定义一个方法,根据id查找对应的用户信息。如果存在,返回true;如果不存在,返回false。/*方法体:根据id查找对应的用户信息;方法参数:用户id 、 集合是否需要返回值:需要返回是否存在*/public static boolean contains(ArrayList<User> users, String id) {return getIndex(users, id) >= 0;}//1. 定义一个方法,根据id查找对应的用户信息如果存在,返回索引;如果不存在,返回-1public static int getIndex(ArrayList<User> users, String id) {for (int i = 0; i < users.size(); i++) {if (users.get(i).getId().equals(id)) {return i;}}return -1;}
}
5. 集合练习04-返回多个数据
- 需求:
- 定义Javabean类:PhonePhone
- 属性:品牌,价格。
- main方法中定义一个集合,存入三个手机对象。
- 分别为:小米,1000。苹果,8000。锤子2999.
- 定义一个方法,将价格低于3000的手机信息返回,
- 总结:通过一下练习需要掌握,当需要返回多个集合中的数据时,可以在方法中重新定义一个新的集合,把需要返回的数据存入新集合,然后把新集合进行返回。
public class DemoArrayList05 {/*- 需求:- 定义Javabean类:PhonePhone- 属性:品牌,价格。- main方法中定义一个集合,存入三个手机对象。- 分别为:小米,1000。苹果,8000。锤子2999.- 定义一个方法,将价格低于3000的手机信息返回,*/public static void main(String[] args) {//1.创建一个集合ArrayList<Phone> phones = new ArrayList<>();//2.创建3个手机对象Phone p1 = new Phone("小米", 1000);Phone p2 = new Phone("苹果", 8000);Phone p3 = new Phone("锤子", 2999);//3.将手机对象添加到集合中phones.add(p1);phones.add(p2);phones.add(p3);//4.调用自定义的方法,找到价格低于3000的手机。ArrayList<Phone> check = check(phones);System.out.println(check);}//定义一个方法,将价格低于3000的手机信息返回public static ArrayList<Phone> check(ArrayList<Phone> phones){ArrayList<Phone> phones_result = new ArrayList<>();for (int i = 0; i < phones.size(); i++) {if (phones.get(i).getPrice() < 3000){phones_result.add(phones.get(i));}}return phones_result;}
}