将ArrayList中的变量名称设置为等于Java中某个String的值

时间:2018-04-13 16:21:38

标签: java arraylist

我正在创建一个while循环,要求输入一个名称和一个id,并将其重复添加到ArrayList,直到被告知我的计算机科学课程停止。我怎么能每次都改变新的“TeamMember”的名字?此外,这甚至会工作,如果不是为什么,我怎么能让它工作? 这是我的代码(主要):

import java.util.ArrayList;
import java.util.Scanner;

public class TeamClassMain {

public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);
    ArrayList <TeamMember> list = new ArrayList();
    String name;
    String id;
    String ArrayVar;
    int number = 0;
    int stop = 0;
    while (stop == 0) {
        System.out.println("Enter the next name:");
        name = scan.nextLine();
        name = name.toLowerCase();
        if (name == "stop") {
            stop = 1;
        }
        System.out.println("Enter the next ID:");
        id = scan.nextLine();
        ArrayVar = "member " + number;
        TeamMember member1 = new TeamMember(name, id);
        number++;
        }
   }  
}

这不是必需的,但知道TeamMember是什么可能很有趣,所以这是我的TeamMember类:

import java.lang.*;

public class TeamMember {

String fullName;
String idString;

TeamMember(String name, String id) {
    name = name.toUpperCase();
    char character;
    String string;
    int num;
    for (int i = 0; i < name.length() - 1; i++) {
        if (i == 0) {
             character = name.charAt(0);
             string = "" + character;
             string = string.toUpperCase();
             character = string.charAt(0); 
             i = character;
        }
        if (name.charAt(i) == ' ') {
            character = name.charAt(i + 1);
            string = "" + character;
            string = string.toUpperCase();
            character = string.charAt(i + 1);
            name.substring(i + 1, character);
        }
    }
    fullName = name;
    idString.valueOf(id);
}

public String toString() {
    return fullName;    
}

int compareTo(TeamMember other) {
    return idString.compareTo(other.idString);
    }
}

2 个答案:

答案 0 :(得分:0)

您需要将TeamMember添加到ArrayList

TeamMember member1 = new TeamMember(name, id);
list.add(member1);//add to list

你应该在停止之后打破while循环停止不会添加到列表中 并使用equal来比较字符串

if (name.equals("stop")) {
    stop = 1;
    break;
}

答案 1 :(得分:0)

步骤1 - 不要用锤子来驱动螺丝。 特别, 注意输入数据:您要求用户输入名称和ID之间的映射值。 看起来名称是键,id是值。 将地图“内容”存储在Map

第2步 - TeamMember类提供的值约为0。只需使用名称和ID之间的映射。

在较少的玩具问题中,TeamMember会在名称和ID之间做更多的映射。 在这种情况下, 确定哪个是适当的密钥(ID或名称),并在每次插入new时分配(使用TeamMember)新的Map作为值。