JAVA 数组的比较
importjava.util.Arrays;publicclassEqualsTest{publicstaticvoidmain(Stringarg[]){charch...
import java.util.Arrays;
public class EqualsTest{
public static void main (String arg[]){
char charArray1[]={'a','b','c'};
char charArray2[]={'a','b','c'};
boolean c;
c=charArray1.equals(charArray2);
System.out.println(c); }
}
为什么输出的是false
大家知道的帮个忙哈~~谢谢勒~ 展开
public class EqualsTest{
public static void main (String arg[]){
char charArray1[]={'a','b','c'};
char charArray2[]={'a','b','c'};
boolean c;
c=charArray1.equals(charArray2);
System.out.println(c); }
}
为什么输出的是false
大家知道的帮个忙哈~~谢谢勒~ 展开
6个回答
展开全部
我刚测试了,没有问题,下面是代码:
public
static
void
main(String[]
args)
{
String[]
str1
=
{"1","2","3","4","5","6","7"};
String[]
str2
=
{"2","3","4","5"};
List
list1
=
new
ArrayList();
List
list2
=
new
ArrayList();
List
sameList
=
new
ArrayList();
List
diffList
=
new
ArrayList();
for(int
i=0;
i<str1.length;
i++){//将str1添加到list1中
list1.add(str1[i]);
}
for(int
i=0;
i<str2.length;
i++){//将str2添加到list2中
list2.add(str2[i]);
}
for(int
i=0;
i<list1.size();
i++){
if(i
>
list2.size()){//list2中的元素已经检索完,剩下的就是不同的
diffList.add(list1.get(i));
continue;
}
if(list2.contains(list1.get(i))){//list1.get(i)在list2中
sameList.add(list1.get(i));
}else{//list1.get(i)不在list2中
diffList.add(list1.get(i));
}
}
System.out.println("相同的元素:");
for(int
i=0;
i<sameList.size();
i++){
System.out.print(sameList.get(i)+"
");
}
System.out.println();
System.out.println("不同的元素:");
for(int
i=0;
i<diffList.size();
i++){
System.out.print(diffList.get(i)+"
");
}
}
如果你要排序的话,可以按照“推荐答案”中说的,把list中存放的数再放入到set中,利用set的sort()方法就可以解决了。希望可以帮到你
public
static
void
main(String[]
args)
{
String[]
str1
=
{"1","2","3","4","5","6","7"};
String[]
str2
=
{"2","3","4","5"};
List
list1
=
new
ArrayList();
List
list2
=
new
ArrayList();
List
sameList
=
new
ArrayList();
List
diffList
=
new
ArrayList();
for(int
i=0;
i<str1.length;
i++){//将str1添加到list1中
list1.add(str1[i]);
}
for(int
i=0;
i<str2.length;
i++){//将str2添加到list2中
list2.add(str2[i]);
}
for(int
i=0;
i<list1.size();
i++){
if(i
>
list2.size()){//list2中的元素已经检索完,剩下的就是不同的
diffList.add(list1.get(i));
continue;
}
if(list2.contains(list1.get(i))){//list1.get(i)在list2中
sameList.add(list1.get(i));
}else{//list1.get(i)不在list2中
diffList.add(list1.get(i));
}
}
System.out.println("相同的元素:");
for(int
i=0;
i<sameList.size();
i++){
System.out.print(sameList.get(i)+"
");
}
System.out.println();
System.out.println("不同的元素:");
for(int
i=0;
i<diffList.size();
i++){
System.out.print(diffList.get(i)+"
");
}
}
如果你要排序的话,可以按照“推荐答案”中说的,把list中存放的数再放入到set中,利用set的sort()方法就可以解决了。希望可以帮到你
展开全部
思路:将数组一放到一个ArrayList中,然后遍历数组二中的元素,依次判断此ArrayList是否包含该元素。若不包含,则加入ArrayList;若包含,则取出并放入另一个ArrayList。最后,两个ArrayList存放的便分别是两个数组不相同和相同的元素集合,排序后输出即可。我没验证,应该可以,希望对你有帮助!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组本身没有equals方法,但是因为Java中所有的类都继承Object,所以他调用的是Object的equals方法,这个equals方法的声明是:
public boolean equals(Object obj) {
return (this == obj);
}
也就是说equals的判断和 charArray1 == charArray2 的结果一样,都是比较的内存地址.
要想比较内容是否相同,只能用util包中的Array.equals方法.
public boolean equals(Object obj) {
return (this == obj);
}
也就是说equals的判断和 charArray1 == charArray2 的结果一样,都是比较的内存地址.
要想比较内容是否相同,只能用util包中的Array.equals方法.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果输出是false,因该是调用的是Object继承来的equals方法
那就是比较引用
sun是这么实现equals方法的
public boolean equals(Object obj) {
return (this == obj);
}
那么自然会返回false
你可以在c=Arrays.equals(charArray1,charArray2); 行设置断点
调试的时候,不选择"单步跳过",而选择"单步跳入",就可以看到他是怎么执行的了
那就是比较引用
sun是这么实现equals方法的
public boolean equals(Object obj) {
return (this == obj);
}
那么自然会返回false
你可以在c=Arrays.equals(charArray1,charArray2); 行设置断点
调试的时候,不选择"单步跳过",而选择"单步跳入",就可以看到他是怎么执行的了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
帮你改了下代码。是equals方法用的有问题
import java.util.Arrays;
public class EqualsTest{
public static void main (String arg[]){
char charArray1[]={'a','b','c'};
char charArray2[]={'a','b','c'};
boolean c;
c=Arrays.equals(charArray1,charArray2);
System.out.println(c); }
}
import java.util.Arrays;
public class EqualsTest{
public static void main (String arg[]){
char charArray1[]={'a','b','c'};
char charArray2[]={'a','b','c'};
boolean c;
c=Arrays.equals(charArray1,charArray2);
System.out.println(c); }
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询