首页 新闻 会员 周边 捐助

Java集合编程题

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

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

Sy-ShenYue的主页 Sy-ShenYue | 初学一级 | 园豆:198
提问于:2021-12-06 16:05
< >
分享
最佳答案
0

这是java基础部分,作为一个java程序员,这是自己必须学会的,需要自己去慢慢学习,而不是寻找答案,以下是粗浅案例,仅供参考,若您是初学者不建议复制,而是学习;

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);
    userArrayList.add(user1);
    userArrayList.add(user2);
    userArrayList.add(user3);
    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();
    userArrayList.add(user);
    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());
        }
    }
}

}

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

这个运行为什么是空的啊大佬还有UUID.randomUUID这个是什么啊

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);
    //加入到集合中
    userArrayList.add(user1);
    userArrayList.add(user2);
    userArrayList.add(user3);
    //返回
    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();
    //将传入的用户新增的集合中
    userArrayList.add(user);
    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);
//将传入的用户新增的集合中
userArrayList.add(user);
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();
    al.add(8);
    al.add(3);
    al.add(5);
    al.add(3);
    al.add(4);
    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=男
利用字节流读取文件内容并保存对象到List集合中,循环打印集合
我怎么放到集合里面啊谢谢大佬

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

@Sy-ShenYue: 通过文件流读取字符串。然后创建User对象,将字符串属性填充,使用集合add方法添加集合,大概思路就是这,自己思考学习吧

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:

大佬我怎样可以把特需号也设置成10个呢
那个把main方法当做普通号或者特需号的方法我已经写过了就想换这个传参的方法但是那个特需号他也是50个怎么设置成10个啊

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
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册