Xin chào ! trong java em muốn kiểm tra xem a,b,c có bằng nhau không thì phải viết a==b & a==c & b==c
sao không thể viết a==b==c
? vậy nếu muốn kiểm tra 100 biến có bằng nhau không thì phải viết rất dài ạ ?!
Kiểm tra xem các số có bằng nhau không
for loop sinh ra để làm gì vậy bạn ?
5 Likes
Cho các số vào 1 mảng. Dùng cái này để lọc các phần tử trong mảng ra rồi check nếu độ dài mảng = 1 thì các số bằng nhau.
int[] arrNumber = ....; // https://stackoverflow.com/questions/14656208/array-of-unique-elements
if (arrNumber.Length == 1)
{
// do something here
}
1 Like
Cách của bạn sẽ không tận dụng được đặc tính Short-circuit evaluation của biểu thức logic trong java, Có 1 cách khác mà vẫn giữ được đặc tính đó là lấy số đầu tiên, loop từ phần tử thứ 2 trở đi. nếu khác phần tử đầu thì nghĩa là các số k bằng nhau
4 Likes
public static <T extends Number> boolean isEqual(T... listInput)
{
if(listInput.length < 2)
return true;
return Arrays.stream(listInput).allMatch(t ->
{
if(t.getClass() == listInput[0].getClass())
return t.equals(listInput[0]);
return t.doubleValue() == listInput[0].doubleValue();
});
}
1 Like
CHắc là tránh lặp vô hạn thôi
1 Like
Hay bạn thử cách lấy phần tử đầu tiên trong mảng duyệt qua các phần tử còn lại, nếu khác thì return
1 Like