集合
文章目录
- 集合
-
- 1.集合基础
-
- 1.1集合概述
- 1.2 ArrayList 构造方法和添加方法
- 1.3 ArrayList成员方法
- 1.3.1 基本数据类型对应的包装类
- 1.4 练习
-
- 1.4.1
- 1.4.2
- 1.4.3
- 1.4.4
- 1.4.5
- 1.4.6
- 1.4.7
- 1.4.8
- 1.4.9
1.集合基础
1.1集合概述
集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以发生改变集合类有很多
ArrayList:
- 可调整大小的数组实现
- :是一种特殊的数据类型,泛型。
怎么用? 在出现E的地方我们使用引用数据类型替换即可 举例:ArrayList , ArrayList
1.2 ArrayList 构造方法和添加方法
public ArrayList() | 创建一个空的集合对象 |
public boolean add(E e) | 将指定的元素追加到次集合的末尾 |
public void add(int index , E element) | 在此集合中的指定位置插入指定的元素 |
集合和数组的对比
1.3 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() | 集合的长度,也就是集合中元素的个数 |
package Gather;
import java.util.ArrayList;
//增删改查
/*
boolean add(E e) 添加
boolean remove(Ee) 删除
E remove(int index)
E set(int index,E e) 修改
E get(int index) 查询
int size() 获取长度
*/
public class ArrayListdemo02 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
//增
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("ddd");
System.out.println(list);
//删
boolean result1= list.remove("aaa");
System.out.println(list);
String st=list.remove(1);
System.out.println(st);
//改
/*String result2 =*/list.set(1,"fff");
System.out.println(list);
//查
String s=list.get(0);
System.out.println(s);
//遍历
for (int i = 0; i < list.size(); i++) {
//i索引
//list.get(i) 元素
String s1= list.get(i);
System.out.println(s1);
}
}
}
运行结果
遍历
1.3.1 基本数据类型对应的包装类
基本数据类型对应的包装类
short | Short |
char | Character |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
1.4 练习
1.4.1
package Gather;
import java.util.ArrayList;
public class ArrayListdemo03 {
public static void main(String[] args) {
//1.创建数组
ArrayList<String> list = new ArrayList<>();
//2.增加数组
list.add("你在干嘛");
list.add("点赞了吗");
list.add("转发了吗");
System.out.print("[");
//3.遍历
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("]");
}
}
运行结果
1.4.2
添加数字并遍历 需求:定义一个集合,添加数字,并进行遍历。 遍历格式参照:[元素1,元素2,元素3]。
package Gather;
//添加数字并遍历 需求:定义一个集合,添加数字,并进行遍历。
//遍历格式参照:[元素1,元素2,元素3]。
import java.util.ArrayList;
public class test1 {
public static void main(String[] args) {
//1.创建数组
ArrayList<Integer> list = new ArrayList<>();
//2.增加数字
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
System.out.print("[");
//3.遍历数组
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("]");
}
}
运行结果
1.4.3
3.练习
package Gather;
import java.util.ArrayList;
public class test2 {
public static void main(String[] args) {
ArrayList<Character> list = new ArrayList<>();
//add
list.add('a');
list.add('b');
list.add('c');
list.add('d');
list.add('e');
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("]");
}
}
运行结果
1.4.4
4.练习
需求:定义一个集合,添加一些学生对象,并进行遍历 学生类的属性为:姓名,年龄。
package Gather;
//javabean
//1.私有化成员变量
// 2.空参构造方法
// 3.带全部参数的构造方法
// 4.get/set方法
public class Student {
private String name;
private int age;
public Student(){
}
public Student(String name, int age) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package Gather;
import java.util.ArrayList;
//需求:定义一个集合,添加一些学生对象,并进行遍历 学生类的属性为:姓名,年龄。
public class test3 {
public static void main(String[] args) {
//1.创建集合
ArrayList<Student> list = new ArrayList<>();
//2.添加学生对象
Student s1 = new Student("赵",11);
Student s2 = new Student("钱",12);
Student s3 = new Student("孙",13);
Student s4 = new Student("李",14);
//3.添加元素
list.add(s1);
list.add(s2);
list.add(s3);
list.add(s4);
//4.遍历
for (int i = 0; i < list.size(); i++) {
//i 索引 list.get(i) 元素/学生对象
Student stu = list.get(i);
System.out.println(stu.getName()+","+stu.getAge());
}
}
}
运行结果
1.4.5
5.练习
package Gather;
import java.util.ArrayList;
import java.util.Scanner;
public class test4 {
public static void main(String[] args) {
//1.创建集合
ArrayList<Student> list = new ArrayList<>();
//2.键盘录入学生的信息并添加到集合当中
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 3; i ++) {
//对象类型 对象名=对象值
Student s= new Student();
System.out.println("请输入学生姓名");
String name = scanner.next();
System.out.println("请输入年龄");
int age= scanner.nextInt();
//把name和age赋值给学生对象
s.setAge(age);
s.setName(name);
//把学生对象添加到集合中
list.add(s);
//遍历
}
for (int i1 = 0; i1 < list.size(); i1++) {
//数据类型Student 变量名stu
//list 类型的集合 从list集合中 取出索引为i1的元素 ,把他强制转换为Student类型 然后赋值给变量stu(用stu接收这个对象)
Student stu=list.get(i1);
System.out.println(stu.getName()+","+stu.getAge());
}
System.out.println(list.size());
}
}
运行结果
1.4.6
6.练习
需求: 1,main方法中定义一个集合,存入三个用户对象。 用户属性为:id,username,password 2,要求:定义一个方法,根据id查找对应的用户信息, 如果存在,返回true 如果不存在,返回false
package Gather;
//1.私有化成员变量
// 2.空参构造方法
// 3.带全部参数的构造方法
// 4.get/set方法
public class User {
private String id;
private String name;
private int password;
public User(String id, String name, int password) {
this.id = id;
this.name = name;
this.password = password;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPassword() {
return password;
}
public void setPassword(int password) {
this.password = password;
}
}
package Gather;
import java.util.ArrayList;
//添加用户对象并判断是否存在
//需求:
//1,main方法中定义一个集合,存入三个用户对象。
//用户属性为:id,username,password
//2,要求:定义一个方法,根据id查找对应的用户信息,
//如果存在,返回true
//如果不存在,返回false
//
public class test5 {
public static void main(String[] args) {
//1.创建数组
ArrayList<User> list = new ArrayList<>();
//2.创建三个用户对象
User u1 = new User("10001", "zhao", 123456);
User u2 = new User("10002", "zhang", 1234567);
User u3 = new User("10003", "li", 1234561);
//3.把用户对象添加到集合中去
list.add(u1);
list.add(u2);
list.add(u3);
//4.调用方法查看id是否存在
boolean flag=contains(list,"10001");
//5.打印结果
}
//1.我要干嘛 根据id查找用户
//2.我干这件事需要什么才能完成 在list中找id
//3.调用处是否需要使用方法的结果 返回
public static boolean contains(ArrayList<User> list,String id){
for (int i = 0; i < list.size(); i++) {
User u= list.get(i);//拿到集合里面每一个用户
String uid= u.getId();//调用 id ,把id拿出来
//将uid和要查找的id作比较
if (uid.equals(id)){
return true;
}
}
return false;
}
}
运行结果
1.4.7
7.练习
需求: 1,main方法中定义一个集合,存入三个用户对象。
用户属性为:id,username,password 2,要求:定义一个方法,根据id查找对应的用户信息。如果存在,返回索引 如果不存在,返回-1
package Gather;
//需求:
//1,main方法中定义一个集合,存入三个用户对象。
//
//用户属性为:id,username,password
//2,要求:定义一个方法,根据id查找对应的用户信息。如果存在,返回索引
//
//如果不存在,返回-1
import java.util.ArrayList;
public class test6 {
public static void main(String[] args) {
//1.创建数组
ArrayList<User> list = new ArrayList<>();
//2.创建三个用户对象
User u1 = new User("10001", "zhao", 123456);
User u2 = new User("10002", "zhang", 1234567);
User u3 = new User("10003", "li", 1234561);
//3.把用户对象添加到集合中去
list.add(u1);
list.add(u2);
list.add(u3);
//4.查找索引
int Index=getIndex(list,"10001");
System.out.println(Index);
}
// 集合 要查找的id
public static int getIndex(ArrayList<User> list,String id){
for (int i = 0; i < list.size(); i++) {
User u=list.get(i);//拿到集合里面每一个用户
String uId=u.getId();//调用 id ,把id拿出来
//将uId和要查找的id作比较
if (uId.equals(id)){
return i;
}
}
return –1;
}
}
运行结果
1.4.8
8.练习
添加手机对象并返回要求的数据 需求: 定义Javabean类:Phone Phone属性:品牌,价格。 main方法中定义一个集合,存入三个手机对象。 分别为:小米,1000。苹果,8000。锤子2999. 定义一个方法,将价格低于3000的手机信息返回
package Gather;
//javabean
//1.私有化成员变量
// 2.空参构造方法
// 3.带全部参数的构造方法
// 4.get/set方法
//Phone属性:品牌,价格。
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;
}
}
package Gather;
import java.util.ArrayList;
//添加手机对象并返回要求的数据
//需求:
//定义Javabean类:Phone
//Phone属性:品牌,价格。
//main方法中定义一个集合,存入三个手机对象。
//分别为:小米,1000。苹果,8000。锤子2999.
//定义一个方法,将价格低于3000的手机信息返回
public class test7 {
public static void main(String[] args) {
//1.创建数组
ArrayList<Phone> list = new ArrayList<>();
//2.存入对象
Phone p1 = new Phone("xiaomi", 1000);
Phone p2 = new Phone("iphone", 8000);
Phone p3 = new Phone("chuizi", 2999);
//3.添加到数组中
list.add(p1);
list.add(p2);
list.add(p3);
//4.调用
// GetPhoneInfo(list);
ArrayList<Phone> phoneInfoList = GetPhoneInfo(list);
//5.遍历集合
for (int i = 0; i < phoneInfoList.size(); i++) {
Phone phone = phoneInfoList.get(i);
System.out.println(phone.getBrand()+","+phone.getPrice());
}
}
//1.我要干嘛 根据价格返回手机信息
//2.我干这件事需要什么才能完成 在list中找低于3000价格的手机
//3.调用处是否需要使用方法的结果 返回
//技巧
//如果我们要返回多个数据,可以把这些数据放到一个容器当中,再把容器返回
//集合 数组
//public static void GetPhoneInfo(ArrayList<Phone> list){
public static ArrayList<Phone> GetPhoneInfo(ArrayList<Phone> list){
ArrayList<Phone> resultList = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
Phone p= list.get(i);
int price=p.getPrice();
if(price<3000){
// System.out.println(p.getBrand()+","+p.getPrice());
resultList.add(p);
}
}return resultList;
}
}
运行结果
1.4.9
晚上好
评论前必须登录!
注册