我正在构建一个ATM,我在我的第二个类中有一个方法,假设检查登录引脚以查看它是否存在于ArrayList
中。虽然我是java新手,但我不确定如何做到这一点?我正在尝试使用arraylistname.contains
,但我不确定这是否正确。我会发布我的课程。
import java.util.ArrayList;
import java.util.Scanner;
public class BankMain {
ArrayList<Integer> cardNum = new ArrayList<Integer>();
public static void main(String[] args) {
// TODO Auto-generated method stub
BankMain main = new BankMain();
main.menu();
}
public void cardNumbers(){
Scanner cards = new Scanner(System.in);
Scanner input = new Scanner(System.in);
Scanner keyboard = new Scanner(System.in);
System.out.println("Please select a 5 digit card number");
cardNum.add(input.nextInt());
System.out.println("Thank you! You're card number is " +cardNum);
System.out.println("Type 'c' to go back to main menu.");
String value = keyboard.next();
if(value.equalsIgnoreCase("c")){
menu();
}else if (!keyboard.equals('c')){
System.out.println("Invalid Entry!");
}
}
public void menu(){
System.out.println("What Would you like to do today?");
System.out.println();
System.out.println("Create Account = 1");
System.out.println("Login = 2");
System.out.println("Exit = 3");
query();
}
public void query(){
Scanner keyboard = new Scanner(System.in);
double input = keyboard.nextInt();
if (input == 2){
BankMainPart2 main2 = new BankMainPart2();
System.out.println("Please enter your 5 digit card number.");
main2.loginCard(cardNum);
}else if (input == 1){
cardNumbers();
}else if (input == 3){
System.out.println("Thank you, have a nice day!");
System.exit(0);
}
}
}
而且,这是我的第二堂课,使用登录方法:
import java.util.ArrayList;
public class BankMainPart2 {
public static void loginCard(ArrayList<Integer> cardNum){
if (cardNum.contains(0)) {
}
}
}
答案 0 :(得分:4)
是的,它有效,但让我们在这里揭开幕后的男人。
正在发生的事情被称为autoboxing。要使用的方法需要对象类型。 int
不是对象类型,但Integer
是。实际上,所有原始类型都有一个与之关联的盒装对象。
Java会很乐意自动将您的基元转换为盒装对象。这可能会有点冒险,因为Java中的一些内部结构可以快速而松散地运行,而Short
自动装箱只是很奇怪,所以在使用它的地方和时间都要小心。
答案 1 :(得分:0)
是的,如果你在int
(原始类型)上进行查找,它就可以正常工作了。
如果您通过传递可变对象进行查找,除非您覆盖hashcode()
和equals()
方法,否则这可能会给您错误的结果。
答案 2 :(得分:0)
cardNum.contains(0)
^^^^ //It should be Card number entered by user.
因autoboxing
答案中所述Makoto's
而有效。