# Java集合编程题

-2
[已解决问题] 解决于 2021-12-25 20:24

.使用ArrayList。创建用户类，包含用户ID，用户名，用户密码，性别，账户余额字段。
（1）初始化3个用户对象
（2）循环输出三个用户信息
（3）根据用户选择编号，修改对应的用户名，修改后提示修改成功并循环打印
（4）添加用户，提示用户输入用户ID，用户名，密码，性别，并添加集合
（5）找出账户为负数的用户，并循环显示

Sy-ShenYue | 初学一级 | 园豆：198

0

import lombok.Data;

import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

@Data
public class User {
//用户id
private String id;
//姓名
private String name;
//密码
private String pass;
//性别 0：女,1：男
private int gender;
//余额
private int money;

``````public User(String id, String name, String pass, int gender, int money) {
this.id = id;
this.name = name;
this.pass = pass;
this.gender = gender;
this.money = money;
}

public List<User> test1(){
ArrayList<User> userArrayList = new ArrayList<>();
User user1 = new User(UUID.randomUUID().toString(),"张三","123456",1,100);
User user2 = new User(UUID.randomUUID().toString(),"李四","123456",1,500);
User user3 = new User(UUID.randomUUID().toString(),"王五","123456",0,-100);
return userArrayList;
}

public void test2(){
List<User> userArrayList = test1();
for (int i = 0; i < userArrayList.size(); i++) {
System.out.println(userArrayList.get(i).toString());
}
}

public void test3(String id,String name){
List<User> userArrayList = test1();
for (int i = 0; i < userArrayList.size(); i++) {
if (userArrayList.get(i).getId().equals(id)){
userArrayList.get(i).setName(name);
System.out.println("修改成功！");
}
System.out.println(userArrayList.get(i).toString());
}
}

public void test4(User user){
List<User> userArrayList = test1();
System.out.println(user.toString());
}

public void test5(){
List<User> userArrayList = test1();
for (int i = 0; i < userArrayList.size(); i++) {
if (userArrayList.get(i).getMoney() < 0){
System.out.println(userArrayList.get(i).toString());
}
}
}
``````

}

DHaiLin | 菜鸟二级 |园豆：221 | 2021-12-06 17:51

Sy-ShenYue | 园豆：198 (初学一级) | 2021-12-06 22:59

@Sy-ShenYue: 什么是空的？，uuid是一个随机的字符串，你可以输出出来看看

DHaiLin | 园豆：221 (菜鸟二级) | 2021-12-06 23:07

@DHaiLin: 明天运行截图看一下就是是个空白的不显示值，是因为没有main方法嘛

Sy-ShenYue | 园豆：198 (初学一级) | 2021-12-06 23:11

@Sy-ShenYue: 我没有写main方法

DHaiLin | 园豆：221 (菜鸟二级) | 2021-12-06 23:13

@DHaiLin: 大佬没有开通博客不能上传图片等申请好吧

Sy-ShenYue | 园豆：198 (初学一级) | 2021-12-07 08:51

@Sy-ShenYue: ArrayList、for循环，Get、Set方法，都是最基础的东西，你应该学习一下，网上搜java基础有很多教程

DHaiLin | 园豆：221 (菜鸟二级) | 2021-12-07 09:01

@Sy-ShenYue: import lombok.Data;

import java.util.ArrayList;
import java.util.List;

@Data
public class User {
//用户id
private String id;
//姓名
private String name;
//密码
private String pass;
//性别 0：女,1：男
private int gender;
//余额
private int money;

``````public User(String id, String name, String pass, int gender, int money) {
this.id = id;
this.name = name;
this.pass = pass;
this.gender = gender;
this.money = money;
}

public static List<User> test1(){
//创建一个ArrayList集合 <User>代表泛型
ArrayList<User> userArrayList = new ArrayList<>();
//创建三个用户
User user1 = new User("1","张三","123456",1,100);
User user2 = new User("2","李四","123456",1,500);
User user3 = new User("3","王五","123456",0,-100);
//加入到集合中
//返回
return userArrayList;
}

public static void test2(){
//获取test1的集合（集合中有三个用户）
List<User> userArrayList = test1();
//for循环输出集合中的对象,使用的是toString方法,@Data注解标注之后会生成相关的get、set、toString相关方法,无需手写
for (int i = 0; i < userArrayList.size(); i++) {
//输出
System.out.println(userArrayList.get(i).toString());
}
}

public static void test3(String id,String name){
//获取test1的集合（集合中有三个用户）
List<User> userArrayList = test1();
//for循环
for (int i = 0; i < userArrayList.size(); i++) {
//循环判断当前集合中的用户，与传入的id相比较，相等就将其名称改为传入的名称
if (userArrayList.get(i).getId().equals(id)){
userArrayList.get(i).setName(name);
System.out.println("修改成功！");
}
//最后输出更改后的User
System.out.println(userArrayList.get(i).toString());
}
}

public static void test4(User user){
List<User> userArrayList = test1();
//将传入的用户新增的集合中
System.out.println(user.toString());
}

public static void test5(){
List<User> userArrayList = test1();
for (int i = 0; i < userArrayList.size(); i++) {
//判断钱小于0的用户
if (userArrayList.get(i).getMoney() < 0){
System.out.println(userArrayList.get(i).toString());
}
}
}

public static void main(String[] args) {
//（1）初始化3个用户对象
List<User> users = test1();
//（2）循环输出三个用户信息
test2();
System.out.println("--------------------------------");
//（3）根据用户选择编号，修改对应的用户名，修改后提示修改成功并循环打印,将id为2的名称改为王二麻子
test3("2","王二麻子");
System.out.println("-------------");
//（4）添加用户，提示用户输入用户ID，用户名，密码，性别，并添加集合
test4(new User("4","赵六","123456",1,10));
System.out.println("------------------");
//（5）找出账户为负数的用户，并循环显示
test5();
}
``````

}

DHaiLin | 园豆：221 (菜鸟二级) | 2021-12-07 09:34

@DHaiLin: 谢谢大佬，要是改成scanner输入是不是添加接收就可以了就是手动输入添加用户

Sy-ShenYue | 园豆：198 (初学一级) | 2021-12-07 10:20

@Sy-ShenYue: 可以啊，通过变量接收键盘输入的参数，最后组装成一个对象就行

DHaiLin | 园豆：221 (菜鸟二级) | 2021-12-07 11:06

@Sy-ShenYue: public static void test4(){
List<User> userArrayList = test1();
Scanner scanner = new Scanner(System.in);
System.out.println("请输入id");
String id = scanner.next();
System.out.println("请输入用户名");
String name = scanner.next();
System.out.println("请输入密码");
String pass = scanner.next();
System.out.println("请输入性别");
int gender = scanner.nextInt();
System.out.println("请输入钱");
int money = scanner.nextInt();
User user = new User(id, name, pass, gender, money);
//将传入的用户新增的集合中
System.out.println(user.toString());
}

``````public static void main(String[] args) {
//（1）初始化3个用户对象
List<User> users = test1();
//（2）循环输出三个用户信息
test2();
System.out.println("--------------------------------");
//（3）根据用户选择编号，修改对应的用户名，修改后提示修改成功并循环打印,将id为2的名称改为王二麻子
test3("2","王二麻子");
System.out.println("-------------");
//（4）添加用户，提示用户输入用户ID，用户名，密码，性别，并添加集合
test4();
System.out.println("------------------");
//（5）找出账户为负数的用户，并循环显示
test5();
}``````
DHaiLin | 园豆：221 (菜鸟二级) | 2021-12-07 11:25

@DHaiLin: 谢谢大佬

Sy-ShenYue | 园豆：198 (初学一级) | 2021-12-07 15:27

@DHaiLin:

Sy-ShenYue | 园豆：198 (初学一级) | 2021-12-08 12:18

@Sy-ShenYue: public class Test {

``````public static Integer listTest(ArrayList<Integer> al,Integer s){
for (int i = 0; i < al.size(); i++) {
if (al.get(i).equals(s)){
return i;
}
}
return null;
}

public static void main(String[] args) {
ArrayList<Integer> al = new ArrayList();
System.out.println(listTest(al, 3));
}
``````

}

DHaiLin | 园豆：221 (菜鸟二级) | 2021-12-08 12:25

@DHaiLin: 就是不理解那个indexof是什么意思，刚开始学Java高级编程，感觉高级有点难简单的条例清晰的练习题都可以做出来，谢谢大佬，会的，对了大佬昨天的那个题我自己又写了一个思路

Sy-ShenYue | 园豆：198 (初学一级) | 2021-12-08 12:34

@Sy-ShenYue: 这都是最基础的东西，跟高级搭不上边

DHaiLin | 园豆：221 (菜鸟二级) | 2021-12-08 12:50

@DHaiLin: 这不是Java高级编程API嘛。好的谢谢大佬指点迷津

Sy-ShenYue | 园豆：198 (初学一级) | 2021-12-09 10:07

@DHaiLin: 大佬能在请教一下您不，又遇到个难题

name=张三,age=18,sex=女|name=李四,age=12,sex=男

Sy-ShenYue | 园豆：198 (初学一级) | 2021-12-14 17:23

@Sy-ShenYue: 如果这是你的作业的话，你应该学会自己写

DHaiLin | 园豆：221 (菜鸟二级) | 2021-12-14 17:43

@DHaiLin: 不是作业是找的练习题

Sy-ShenYue | 园豆：198 (初学一级) | 2021-12-14 17:46

@Sy-ShenYue: 既然是练习题，就自己练

DHaiLin | 园豆：221 (菜鸟二级) | 2021-12-14 17:48

DHaiLin | 园豆：221 (菜鸟二级) | 2021-12-14 17:49

@DHaiLin: 这样啊，好的好的谢谢大佬我想的是把输入流添加到list集合中然后运行时他会报错

Sy-ShenYue | 园豆：198 (初学一级) | 2021-12-14 18:09

@DHaiLin: 思考了好久都解决不了就

Sy-ShenYue | 园豆：198 (初学一级) | 2021-12-14 18:09

@Sy-ShenYue: 多思考

DHaiLin | 园豆：221 (菜鸟二级) | 2021-12-15 11:14

@DHaiLin:

Sy-ShenYue | 园豆：198 (初学一级) | 2021-12-20 16:55

@Sy-ShenYue: 我没有搞清楚你想说什么，你描述你想干什么吧！

DHaiLin | 园豆：221 (菜鸟二级) | 2021-12-20 22:35

@DHaiLin: 没事解决了大佬

Sy-ShenYue | 园豆：198 (初学一级) | 2021-12-21 08:28

您需要登录以后才能回答，未注册用户请先注册