我用一个String
字段构建了一个类.然后我创建了两个对象,我必须使用==
运算符进行比较.equals()
.这就是我所做的:
public class MyClass {
String a;
public MyClass(String ab) {
a = ab;
}
public boolean equals(Object object2) {
if(a == object2) {
return true;
}
else return false;
}
public boolean equals2(Object object2) {
if(a.equals(object2)) {
return true;
}
else return false;
}
public static void main(String[] args) {
MyClass object1 = new MyClass("test");
MyClass object2 = new MyClass("test");
object1.equals(object2);
System.out.println(object1.equals(object2));
object1.equals2(object2);
System.out.println(object1.equals2(object2));
}
}
Run Code Online (Sandbox Code Playgroud)
编译后,结果显示两次false.如果两个对象具有相同的字段 - "test",为什么它是错误的?
Java中的以下代码返回-1.我认为它应该返回3.
int[] array = {1,2,3,4,5,6};
System.out.println(Arrays.asList(array).indexOf(4));
Run Code Online (Sandbox Code Playgroud)
你能帮我理解这个功能是如何工作的吗?
谢谢
我在接受采访时被问到这个问题.虽然采访是针对网点位置的,但他在java的背景下问我这个问题,因为我在简历中也提到了java.
如何在数组中找到值为X的元素的索引?
我说从第一个元素到最后一个元素迭代,并检查值是否为X将给出结果.他询问了一种涉及较少次迭代的方法,我说使用二进制搜索,但这只能用于排序数组.我试着在Array类中使用IndexOf函数.但我身边没有回答这个问题.
有没有快速的方法来获取数组中具有值X的元素的索引?
我可以使用每种语法从数组中读取数据:
int[] a = new int[100];
for (int i = 0; i < 100; i++){
a[i] = i;
}
for (int element : a){
System.out.println(element);
}
Run Code Online (Sandbox Code Playgroud)
但同样可以填充阵列.说,有i*2
价值观?
我没有发明这样的方法,而是宁愿问你我是不是错了.
如果我有一个数组列表(例如字符串数组),那么如何获取元素的索引及其值?
代码示例:
private static final String[] TEST = new String[]{
"abc","bcd","def"
}
Run Code Online (Sandbox Code Playgroud)
要求其索引类似于:
int i = TEST.getPosition("abc");/TEST.indexof(...);//not available
Run Code Online (Sandbox Code Playgroud)
我还尝试创建 ArrayAdapter。
有这样的事吗?或者也许我需要用那个适配器或其他东西来分配它?
或者,
我怎样才能得到一个元素的这样的索引?