[Java] أبي لضبط العمليات في جافا؟


Answers

أنا لا أعرف أي أبي ولكن قد استخدمت الطرق التالية تفعل مثل هذه الأشياء على مجموعة .

public static <T> Set<T> union(Set<T> setA, Set<T> setB) {
    Set<T> tmp = new TreeSet<T>(setA);
    tmp.addAll(setB);
    return tmp;
  }

  public static <T> Set<T> intersection(Set<T> setA, Set<T> setB) {
    Set<T> tmp = new TreeSet<T>();
    for (T x : setA)
      if (setB.contains(x))
        tmp.add(x);
    return tmp;
  }

  public static <T> Set<T> difference(Set<T> setA, Set<T> setB) {
    Set<T> tmp = new TreeSet<T>(setA);
    tmp.removeAll(setB);
    return tmp;
  }

  public static <T> Set<T> symDifference(Set<T> setA, Set<T> setB) {
    Set<T> tmpA;
    Set<T> tmpB;

    tmpA = union(setA, setB);
    tmpB = intersection(setA, setB);
    return difference(tmpA, tmpB);
  }

  public static <T> boolean isSubset(Set<T> setA, Set<T> setB) {
    return setB.containsAll(setA);
  }

  public static <T> boolean isSuperset(Set<T> setA, Set<T> setB) {
    return setA.containsAll(setB);
  }

المرجع: مجموعة العمليات: الاتحاد، تقاطع، الفرق، متماثل الفرق، هو مجموعة فرعية، هو مجموعة

Question

هل هناك أبي لضبط عمليات مثل الاتحاد، تقاطع، الفرق، المنتج الديكارتي، وظيفة من مجموعة إلى آخر، تقييد المجال وتقييد نطاق تلك الوظائف .... في جافا؟

يرجى التعليق على التغطية (العمليات) والأداء.

شكر




لا تحتوي فئة java.util.Set على تلك المكالمات في واجهة برمجة التطبيقات الخاصة بها، ولكن يمكنك الجمع بين عمليات مثل removeAll() و retainAll() و addAll() للقيام بالاتحاد والتقاطع والفرق. لست متأكدا من أنني أعرف ما تقصده تقييد النطاق.