一、ArrayList
1.基础操作(增删改查)
1.增
boolean add(E e) 返回是否成功
2.删
boolean remove(E e)返回是否成功
E remove(int index)返回被删除的元素
3.改
E set(int index,E e)修改指定索引元素,返回原来的元素
4.查
E get(int index)获取指定索引的元素
int size()集合长度
import java.util.*;
public class ArrayListDemo1 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
//1.创建集合对象
//泛型:限定集合中存储数据的类型
ArrayList<String> list=new ArrayList<>();
//打印对象不是地址值,是集合中存储的数据内容
//格式固定为[]
//2.增加元素
list.add("我");
list.add("爱");
list.add("帅");
list.add("哥");
System.out.println(list);
//3.删除元素
list.remove(1);
System.out.println(list);
//4.修改元素
list.set(0,"爱");
System.out.println(list);
//5.获取元素
String a=list.get(1);
System.out.println(a);
}
}
2. 添加元素遍历(引用数据类型、基本数据类型)
对应基本数据类型的包装类:
byte->Byte
short->Short
char->Character
int->Integer
long->Long
float->Float
double->Double
boolean->Boolean
A.主函数
import java.util.*;
public class ArrayListDemo2 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
//定义一个集合,添加字符串(自定义类),并进行遍历
//格式:[元素1,元素2,元素3]
ArrayList<String> list=new ArrayList<>();
//添加元素
System.out.println("请输入你要添加的字符串");
for (int i = 0; i < 3; i++)
list.add(in.nextLine());
//遍历字符串集合
AllString(list);
//定义一个集合,添加数字(基本数据类型->包装类),进行遍历
ArrayList<Integer> number=new ArrayList<>();
//添加元素
System.out.println("请输入你要添加的数字");
for (int i = 0; i < 3; i++)
number.add(in.nextInt());
//遍历数字集合
AllInteger(number);
}
}
B.基本数据类型int->Integer
public static void AllInteger(ArrayList<Integer> a)
{
System.out.print("[");
for (int i = 0; i < a.size(); i++) {
if(i==0)
System.out.print(a.get(i));
else
System.out.print(","+a.get(i));
}
System.out.println("]");
}
C.引用数据类型 String
public static void AllString(ArrayList<String> a)
{
System.out.print("[");
for (int i = 0; i < a.size(); i++) {
if(i==0)
System.out.print(a.get(i));
else
System.out.print(","+a.get(i));
}
System.out.println("]");
}
3.添加遍历自定义学生类
输入学生信息,并将学生信息逐个输出
A.主函数
import java.util.ArrayList;
import java.util.Scanner;
public class ArrayListDemo3 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
//创建一个学生类的集合
ArrayList<Student> list=new ArrayList<>();
//创建学生对象
for (int i = 0; i < 3; i++) {
Student stu=new Student();
System.out.println("请输入学生姓名");
String name=in.next();
System.out.println("请输入学生年龄");
int age=in.nextInt();
stu.setAge(age);
stu.setName(name);
list.add(stu);
}
//逐步输出学生对象
for(int i=0;i< list.size();i++)
{
Student s = list.get(i);
System.out.println(s);
}
}
}
B.学生类
public class Student {
private String id;
private String name;
private int age;
public Student() {
}
public Student(String name, int age)
{
this.name=name;
this.age=age;
}
public Student(String id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
/**
* 获取
* @return id
*/
public String getId() {
return id;
}
/**
* 设置
* @param id
*/
public void setId(String id) {
this.id = id;
}
/**
* 获取
* @return name
*/
public String getName() {
return name;
}
/**
* 设置
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* 获取
* @return age
*/
public int getAge() {
return age;
}
/**
* 设置
* @param age
*/
public void setAge(int age) {
this.age = age;
}
public String toString() {
return "Student{id = " + id + ", name = " + name + ", age = " + age + "}";
}
}
4. 添加查询遍历自定义用户类
添加用户类信息,并制定方法以便输入用户id查询用户信息
A.主函数
import java.util.*;
public class ArrayListDemo4 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
ArrayList<User> list=new ArrayList<>();
//定义用户信息并存入集合
for (int i = 0; i < 3; i++) {
System.out.println("输入用户id");
String id=in.next();
System.out.println("输入用户名");
String name=in.next();
System.out.println("输入用户密码");
String password=in.next();
User user=new User(id,name,password);
list.add(user);
}
System.out.println("请输入你要查询人的id");
int flag=findUser(in.next(),list);
if(flag>0)
System.out.println("有这个人"+"\n"+"他的用户名是:"+list.get(flag).getUsername());
else
System.out.println("查无此人");
}
}
B.方法:查询用户信息
public static int findUser(String id,ArrayList<User> list){
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getId().equals(id))
return i;
}
return -1;
}
C.方法:用户类
public class User {
private String id;
private String username;
private String password;
public User() {
}
public User(String id, String username, String password) {
this.id = id;
this.username = username;
this.password = password;
}
/**
* 获取
* @return id
*/
public String getId() {
return id;
}
/**
* 设置
* @param id
*/
public void setId(String id) {
this.id = id;
}
/**
* 获取
* @return username
*/
public String getUsername() {
return username;
}
/**
* 设置
* @param username
*/
public void setUsername(String username) {
this.username = username;
}
/**
* 获取
* @return password
*/
public String getPassword() {
return password;
}
/**
* 设置
* @param password
*/
public void setPassword(String password) {
this.password = password;
}
public String toString() {
return "User{id = " + id + ", username = " + username + ", password = " + password + "}";
}
}
5. 查询符合条件的手机(多部)
A.主函数
import java.util.*;
public class ArrayListDemo5 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
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> list1=new ArrayList<>();
list1=findPhone(list);
if(list1!=null)
{
System.out.println("符合条件的手机有");
for (int i = 0; i < list1.size(); i++) {
System.out.println(list1.get(i).getBrand()+"手机,价格:"+list1.get(i).getPrize());
}
}
else
System.out.println("没有符合条件的手机");
}
}
B.方法:查询符合条件的手机
public static ArrayList<Phone> findPhone(ArrayList<Phone> list)
{
int flag=0;
ArrayList<Phone> list1=new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getPrize()<3000) {
list1.add(list.get(i));
flag=1;
}
}
if(flag==0)
return null;
else
return list1;
}
C.手机类
public class Phone {
private String brand;
private int prize;
public Phone() {
}
public Phone(String brand, int prize) {
this.brand = brand;
this.prize = prize;
}
/**
* 获取
* @return brand
*/
public String getBrand() {
return brand;
}
/**
* 设置
* @param brand
*/
public void setBrand(String brand) {
this.brand = brand;
}
/**
* 获取
* @return prize
*/
public int getPrize() {
return prize;
}
/**
* 设置
* @param prize
*/
public void setPrize(int prize) {
this.prize = prize;
}
public String toString() {
return "Phone{brand = " + brand + ", prize = " + prize + "}";
}
}