如何在java中的自定义类型ArrayList上使用Contains?
在这里,如何使用contains搜索名称?我想使用.contains匹配arrayList的输入结果 这个程序我创建了一个类名数据类型,用于使用自定义类型数据类型如何在java中的自定义类型ArrayList上使用Contains?,java,arraylist,Java,Arraylist,在这里,如何使用contains搜索名称?我想使用.contains匹配arrayList的输入结果 这个程序我创建了一个类名数据类型,用于使用自定义类型数据类型 arrayList.add(new DataType(name,Integer.parseInt(age))); System.out.println("Search Nme : "); String name=new Scanner(System.in).nextLine(); if (array
arrayList.add(new DataType(name,Integer.parseInt(age)));
System.out.println("Search Nme : ");
String name=new Scanner(System.in).nextLine();
if (arrayList.contains(new DataType(name))) {
System.out.println("Find");
}
或者
System.out.println("Search Nme : ");
String name=new Scanner(System.in).nextLine();
System.out.println("Search age: ");
String age=new Scanner(System.in).nextLine();
if (arrayList.contains(new DataType(name,Integer.parseInt(age)))) {
System.out.println("Find");
}
自定义数据类型类
static class DataType {
String Name;
int Age;
public DataType(String name,int age){
Name=name;
Age=age;
}
public DataType(String name){
Name=name;
}
}您应该能够通过重写自定义类中的equals方法来实现这一点。作为良好的实践,在重写equals方法时也重写hashcode方法 您应该能够通过重写自定义类中的equals方法来实现这一点。作为良好的实践,在重写equals方法时也重写hashcode方法 正如JavaProgrammer12所说,在java中重写equals方法是一个很好的观点 下面是一个简单的例子
static class DataType {
String Name;
int Age;
public DataType(String name, int age) {
Name = name;
Age = age;
}
public DataType(String name) {
Name = name;
}
@Override
public boolean equals(Object fromObj) {
DataType dt = (DataType)fromObj;
if(Name == null) return false;
if(dt.Age == Age) return true;
if(dt.Name.equals(Name)) return true;
return false;
}
}
您可以在一个main中使用类进行测试。
比如说,
static void containsName1(List<DataType> dtArrayLst, Scanner sc) {
System.out.print("Search Nme1 : ");
String name = sc.nextLine();
if (dtArrayLst.contains(new DataType(name))) {
System.out.println("Find");
}
System.out.println();
}
static void containsName2(List<DataType> dtArrayLst, Scanner sc) {
System.out.print("Search Nme2 : ");
String name = sc.nextLine();
System.out.print("Search age: ");
String age = sc.nextLine();
if (dtArrayLst.contains(new DataType(name, Integer.parseInt(age)))) {
System.out.println("Find");
}
System.out.println();
}
public static void main(String[] args) {
String name = "tommybee";
String age = "100";
List<DataType> dtArrayLst = new ArrayList<DataType>();
dtArrayLst.add(new DataType(name, Integer.parseInt(age)));
Scanner sc = new Scanner(System.in);
containsName1(dtArrayLst, sc);
containsName2(dtArrayLst, sc);
sc.close();
}
static void containsName1(列表dtArrayLst、扫描仪sc){
系统输出打印(“搜索Nme1:”);
字符串名称=sc.nextLine();
if(dtArrayLst.contains(新数据类型(名称))){
System.out.println(“查找”);
}
System.out.println();
}
静态空隙容器2(列表dtArrayLst、扫描仪sc){
系统输出打印(“搜索Nme2:”);
字符串名称=sc.nextLine();
系统输出打印(“搜索年龄:”);
字符串年龄=sc.nextLine();
if(dtArrayLst.contains(新数据类型(名称,Integer.parseInt(年龄))){
System.out.println(“查找”);
}
System.out.println();
}
公共静态void main(字符串[]args){
String name=“tommybee”;
字符串年龄=“100”;
List dtArrayLst=new ArrayList();
add(新的数据类型(name,Integer.parseInt(age));
扫描仪sc=新的扫描仪(System.in);
containsName1(南卡罗来纳州德塔雷斯特);
containsName2(南卡罗来纳州德塔雷斯特);
sc.close();
}
如果您想了解重写equals方法,有一个很好的参考站点
正如JavaProgrammer12所说,在java中重写equals方法是一个很好的观点 下面是一个简单的例子
static class DataType {
String Name;
int Age;
public DataType(String name, int age) {
Name = name;
Age = age;
}
public DataType(String name) {
Name = name;
}
@Override
public boolean equals(Object fromObj) {
DataType dt = (DataType)fromObj;
if(Name == null) return false;
if(dt.Age == Age) return true;
if(dt.Name.equals(Name)) return true;
return false;
}
}
您可以在一个main中使用类进行测试。
比如说,
static void containsName1(List<DataType> dtArrayLst, Scanner sc) {
System.out.print("Search Nme1 : ");
String name = sc.nextLine();
if (dtArrayLst.contains(new DataType(name))) {
System.out.println("Find");
}
System.out.println();
}
static void containsName2(List<DataType> dtArrayLst, Scanner sc) {
System.out.print("Search Nme2 : ");
String name = sc.nextLine();
System.out.print("Search age: ");
String age = sc.nextLine();
if (dtArrayLst.contains(new DataType(name, Integer.parseInt(age)))) {
System.out.println("Find");
}
System.out.println();
}
public static void main(String[] args) {
String name = "tommybee";
String age = "100";
List<DataType> dtArrayLst = new ArrayList<DataType>();
dtArrayLst.add(new DataType(name, Integer.parseInt(age)));
Scanner sc = new Scanner(System.in);
containsName1(dtArrayLst, sc);
containsName2(dtArrayLst, sc);
sc.close();
}
static void containsName1(列表dtArrayLst、扫描仪sc){
系统输出打印(“搜索Nme1:”);
字符串名称=sc.nextLine();
if(dtArrayLst.contains(新数据类型(名称))){
System.out.println(“查找”);
}
System.out.println();
}
静态空隙容器2(列表dtArrayLst、扫描仪sc){
系统输出打印(“搜索Nme2:”);
字符串名称=sc.nextLine();
系统输出打印(“搜索年龄:”);
字符串年龄=sc.nextLine();
if(dtArrayLst.contains(新数据类型(名称,Integer.parseInt(年龄))){
System.out.println(“查找”);
}
System.out.println();
}
公共静态void main(字符串[]args){
String name=“tommybee”;
字符串年龄=“100”;
List dtArrayLst=new ArrayList();
add(新的数据类型(name,Integer.parseInt(age));
扫描仪sc=新的扫描仪(System.in);
containsName1(南卡罗来纳州德塔雷斯特);
containsName2(南卡罗来纳州德塔雷斯特);
sc.close();
}
如果您想了解重写equals方法,有一个很好的参考站点
您没有指定使用哪种语言,请使用标记。这是一个java程序您没有指定使用哪种语言,请使用标记。这是一个java程序