Heim >Java >javaLernprogramm >So verwenden Sie die integrierte Toolklasse CollectionUtils von Springboot

So verwenden Sie die integrierte Toolklasse CollectionUtils von Springboot

PHPz
PHPznach vorne
2023-05-16 13:19:211077Durchsuche

org.springframework.util.CollectionUtils

Urteil der Sammlung

boolean hasUniqueObject(Collection Collection)

Aus den Kommentaren zum Quellcode: Es wird verwendet, um zu bestimmen, ob jedes Element in der Liste/im Satz eindeutig ist, d. h. ob es keine doppelten Elemente in der Liste/im Satz gibt. Aber hier möchte ich Ihnen sagen, dass Sie diese Methode nicht verwenden sollten, da diese Methode Fehler aufweist. Warum? Das Folgende ist der Quellcode in Spring-core-5.2.13.RELEASE.jar. Schauen Sie sich Zeile 12 an. Vorsichtige Leute werden feststellen, dass != verwendet wird, um zu vergleichen, ob zwei Objekte gleich sind. Erinnern Sie sich an den Unterschied zwischen „==“ und „equals“? Der Operator „==“ wird speziell verwendet, um zu vergleichen, ob die Werte zweier Variablen gleich sind, und die Methode equal() wird verwendet, um zu vergleichen, ob der Inhalt zweier unabhängiger Objekte gleich ist. Wenn es sich bei den Elementen in der Sammlung also um numerische Werte handelt, können Sie zum Vergleich „==“ verwenden. Wenn es sich um normale Referenzobjekte handelt, erhalten Sie nicht das richtige Ergebnis.

public static boolean hasUniqueObject(Collection<?> collection) {
   if (isEmpty(collection)) {
      return false;
   }
   boolean hasCandidate = false;
   Object candidate = null;
   for (Object elem : collection) {
      if (!hasCandidate) {
         hasCandidate = true;
         candidate = elem;
      }
      else if (candidate != elem) {
         return false;
      }
   }
   return true;
}

boolean enthältInstance(Collection-Sammlung, Objektelement)

Anhand der Kommentare des Quellcodes wird ermittelt, ob die Sammlung ein Objekt enthält. Diese Methode wird nicht empfohlen, da sie das gleiche Problem wie die vorherige Methode aufweist. In der vierten Zeile des Quellcodes wird immer noch „==" verwendet.

public static boolean containsInstance(@Nullable Collection<?> collection, Object element) {
   if (collection != null) {
      for (Object candidate : collection) {
         if (candidate == element) {
            return true;
         }
      }
   }
   return false;
}

boolean isEmpty(Collection Collection)

Diese Methode wurde überprüft und kann mit Sicherheit verwendet werden. Sie wird verwendet, um festzustellen, ob die Liste/der Satz leer ist 🎜#

@Test
public void test1(){
    Collection<String> list=new ArrayList<>();
    boolean empty = CollectionUtils.isEmpty(list);
    Assert.isTrue(empty, "集合list不为空");
    System.out.println("集合list增加一元素");
    list.add("happy");
    boolean empty2 = CollectionUtils.isEmpty(list);
    Assert.isTrue(empty2, "集合list不为空");
}
#🎜🎜 #boolean isEmpty(Map map)

wird verwendet, um zu bestimmen, ob die Karte leer ist.

@Test
public void test2(){
    Map<String,String> map = new HashMap<>();
    boolean empty = CollectionUtils.isEmpty(map);
    Assert.isTrue(empty, "map不为空");
    System.out.println("map中增加元素");
    map.put("name", "jack");
    boolean empty2 = CollectionUtils.isEmpty(map);
    Assert.isTrue(empty2, "map不为空");
}

boolean enthältAny(Sammlungsquelle, Sammlungskandidaten)

Anhand der Kommentare zum Quellcode wird ermittelt, ob die Sammlungsquelle Elemente anderer Sammlungskandidaten enthält , das heißt, ob die Elemente in den Mengenkandidaten vollständig in der Mengenquelle enthalten sind.

Aus dem Quellcode geht hervor, dass für den Vergleich zwischen Elementen in dieser Methode die Methode „equals“ verwendet wird und die Methode „equals“ des Objekts in der Sammlung aufgerufen wird Das richtige Ergebnis lautet: Das verglichene Objekt muss die Methoden hashCode() und eauals() überschreiben.

@Test
public void test4(){
    Employee lisi = new Employee("lisi");
    Employee zhangsan = new Employee("zhangsan");
    Employee wangwu = new Employee("wangwu");
    List<Employee > list=new ArrayList<>();
    list.add(zhangsan);
    list.add(lisi);
    List<Employee> list2=new ArrayList<>();
    list2.add(wangwu);
    //这里可以用是因为比较的时候调用的是equals方法
    boolean b = CollectionUtils.containsAny(list, list2);
    Assert.isTrue(b, "list1没有包含有list2中任意一个元素");
}

Collection-Operationen

void mergeArrayIntoCollection(Object array, Collection Collection)

Alle Elemente im Array-Array zu List/Set hinzufügen.

@Test
public void test6(){
    List<Employee > list=new ArrayList<>();
    Employee lisi = new Employee("lisi");
    list.add(lisi);
    Employee zhangsan = new Employee("zhangsan");
    Employee[] employees={zhangsan};
    CollectionUtils.mergeArrayIntoCollection(employees, list);
    Assert.isTrue(list.size()==2, "把数据中的元素合并到list失败了");
}

void mergePropertiesIntoMap(Properties props, Map map)

Fügen Sie alle Schlüssel-Wert-Paare in Eigenschaften zur Karte hinzu.

@Test
public void test7(){
    Properties properties = new Properties();
    properties.setProperty("name", "zhangsan");
    Map<String,String > map = new HashMap<>();
    CollectionUtils.mergePropertiesIntoMap(properties, map);
    Assert.isTrue(map.get("name").equals("zhangsan"), "把properties中的元素合并到map中失败了");
}
@Test
public void test7(){
    Properties properties = new Properties();
    properties.setProperty("name", "zhangsan");
    Map<String,String > map = new HashMap<>();
    CollectionUtils.mergePropertiesIntoMap(properties, map);
    Assert.isTrue(map.get("name").equals("zhangsan"), "把properties中的元素合并到map中失败了");
}

T lastElement(List list)

Gibt das letzte Element in der Liste zurück.

@Test
public void test9(){
    Employee lisi = new Employee("lisi");
    Employee zhangsan    = new Employee("zhangsan");
    List<Employee > list=new ArrayList<>();
    list.add(zhangsan);
    list.add(lisi);
    Employee employee = CollectionUtils.firstElement(list);
    Assert.isTrue(employee.equals(zhangsan), "获取集合第一个元素失败了");
 
}

T firstElement(List list)

Gibt das erste Element in der Sammlung zurück.

@Test
public void test10(){
    Employee zhangsan    = new Employee("zhangsan");
    Employee[] employees={zhangsan};
    List list = CollectionUtils.arrayToList(employees);
    Assert.isTrue(list.size()==1, "把数据转换成集合失败了");
}

List arrayToList(Object source)

Konvertieren Sie ein Array in eine Sammlung.

@Test
public void test10(){
    Employee zhangsan    = new Employee("zhangsan");
    Employee[] employees={zhangsan};
    List list = CollectionUtils.arrayToList(employees);
    Assert.isTrue(list.size()==1, "把数据转换成集合失败了");
}

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die integrierte Toolklasse CollectionUtils von Springboot. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen