国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java判斷2個List集合是否相等(不考慮元素的順序)

Java判斷2個List集合是否相等(不考慮元素的順序)

2021-06-06 14:53李學凱 Java教程

今天小編就為大家分享一篇關于Java判斷2個List集合是否相等(不考慮元素的順序)的文章,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

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

問題圖如下:

Java判斷2個List集合是否相等(不考慮元素的順序)

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

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

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

看代碼:

先是這2個對象的代碼

tablemetadata

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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里面裝的對象的代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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方法啦

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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集合是否相等(不考慮元素的順序)

這個問題簡單嗎,簡單就簡單吧,我就喜歡簡單的問題。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

原文鏈接:https://blog.csdn.net/qq_27093465/article/details/82777139

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 曰本人一级毛片免费完整视频 | 亚洲国产高清在线 | 欧洲精品一区 | 国产精品久久久久久久一区探花 | 成人中文网 | 偷拍第一页 | www.久久99| 日本精品在线观看 | 久久精品 | 色婷婷蜜桃| 久久一区二 | 日韩成人在线播放 | 欧美三级电影在线播放 | 久久精品亚洲成在人线av网址 | 午夜免费av| 久久久99国产精品免费 | 成人久久 | 最近日本韩国高清免费观看 | 精品久久中文字幕 | 欧美中文字幕在线观看 | 午夜精品视频在线观看 | 亚洲精品一二区 | 成人1区 | 亚洲高清视频网站 | 四虎视频 | 国产精品久久久久久久久久ktv | 免费观看特级毛片 | 精品免费视频 | 亚洲精品二区 | 亚洲+变态+欧美+另类+精品 | 啪一啪操一操 | 日韩大片免费看 | 久久99精品久久久久蜜臀 | 欧美在线视频网站 | 欧美精品一区二区三区蜜桃视频 | 亚洲一区二区三 | 久久国产亚洲精品 | 精品一区二区6 | 欧美成人精精品一区二区频 | 久久手机视频 | 一本大道久久a久久精二百 在线a人片免费观看视频 |