亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java怎么判斷2個List集合是否相等

發布時間:2021-05-23 17:16:51 來源:億速云 閱讀:5588 作者:小新 欄目:編程語言

這篇文章主要介紹了Java怎么判斷2個List集合是否相等,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

現在有兩個對象,他們的一個屬性是list,很明顯兩個對象的list里面的對象,都是相等的,只是這2個list里面的順序不一致,導致這2個對象被判斷為不相等啦,這就是問題,現在要解決這個問題。

問題圖如下:

Java怎么判斷2個List集合是否相等

可以看到這2個對象的呢個list屬性里面數據,咱看起來是一樣的,但是經過equals之后,返回的是false。

所以,需要自己重寫equals方法和hashcode方法,這2個方法一般是一起重寫的。

然后,問題的關鍵就在于,怎么判斷2個list集合是否相等。不考慮順序。

看代碼:

先是這2個對象的代碼

TableMetaData

package com.lxk.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Collection;
import java.util.Objects;
/**
 * Table metadata.
 *
 * @author lxk
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TableMetaData {
  private Collection<ColumnMetaData> columnMetaData;
  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    TableMetaData that = (TableMetaData) o;
    if (columnMetaData.size() != that.getColumnMetaData().size()) {
      return false;
    }
    return columnMetaData.containsAll(that.getColumnMetaData());
  }
  @Override
  public int hashCode() {
    return Objects.hash(columnMetaData);
  }
}

然后是,list里面裝的對象的代碼

package com.lxk.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Objects;
/**
 * Column metadata.
 *
 * @author lxk
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public final class ColumnMetaData {
  private String columnName;
  private String columnType;
  private boolean primaryKey;
  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ColumnMetaData that = (ColumnMetaData) o;
    return primaryKey == that.primaryKey &&
        Objects.equals(columnName, that.columnName) &&
        Objects.equals(columnType, that.columnType);
  }
  @Override
  public int hashCode() {
    return Objects.hash(columnName, columnType, primaryKey);
  }
  @Override
  public String toString() {
    return "ColumnMetaData{" +
        "columnName='" + columnName + '\'' +
        ", columnType='" + columnType + '\'' +
        ", primaryKey=" + primaryKey +
        '}';
  }
}

最后就是main方法啦

package com.lxk.commonTest;
import com.google.common.collect.Lists;
import com.lxk.model.ColumnMetaData;
import com.lxk.model.TableMetaData;
import java.util.Collection;
/**
 * 測試equals的各種情況
 *
 * @author lxk on 2018/9/17
 */
public class EqualsTest {
  public static void main(String[] args) {
    testCollectionEqual();
  }
  /**
   * 比較2個集合是否是相同的,不考慮集合的順序,只要里面的元素確實相同即可。
   */
  private static void testCollectionEqual() {
    ColumnMetaData c1 = new ColumnMetaData("age1", "name", true);
    ColumnMetaData c2 = new ColumnMetaData("age2", "name", true);
    ColumnMetaData c3 = new ColumnMetaData("age3", "name", true);
    ColumnMetaData c4 = new ColumnMetaData("age4", "name", true);
    Collection<ColumnMetaData> list1 = Lists.newArrayList(c1, c2, c3);
    Collection<ColumnMetaData> list2 = Lists.newArrayList(c2, c3, c1);
    TableMetaData table1 = new TableMetaData(list1);
    TableMetaData table2 = new TableMetaData(list2);
    boolean equals = table1.equals(table2);
    System.out.println(equals);
  }
}

如上操作之后,這個判斷就可以得到2個對象,是真的相等啦,不會因為list里面值的順序不一致,而返回false啦。

Java怎么判斷2個List集合是否相等

java基本數據類型有哪些

Java的基本數據類型分為:1、整數類型,用來表示整數的數據類型。2、浮點類型,用來表示小數的數據類型。3、字符類型,字符類型的關鍵字是“char”。4、布爾類型,是表示邏輯值的基本數據類型。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Java怎么判斷2個List集合是否相等”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

定陶县| 芦溪县| 西乌| 进贤县| 延安市| 泾源县| 武安市| 蒙阴县| 屯留县| 仁布县| 大英县| 洪湖市| 浦北县| 南开区| 三穗县| 固安县| 博爱县| 吐鲁番市| 丽水市| 湟源县| 贡山| 尉犁县| 孝义市| 曲沃县| 襄汾县| 治多县| 紫阳县| 遵义县| 成都市| 合山市| 泌阳县| 小金县| 米易县| 泰安市| 运城市| 太原市| 武威市| 吉安县| 成安县| 竹山县| 盐源县|