Java 要存储成对的int值并进行比较吗

Java 要存储成对的int值并进行比较吗,java,Java,我的数据是成对的值(例如,(0,2),(2,6),(6,0))。我想对每一对进行一些比较(例如,如果我的值为3,则它是给定值对之间的比较)。存储这些值并能够执行此类比较的最佳方式是什么 谢谢将值存储为元组列表/集合、两元素数组或一个,或 比较本身提出了一些选择;您可以手动比较,如果在范围内/超出范围,则返回真/假。或者您可以实现compariable并与单个值进行比较,分别返回-1、0、1表示低于最低值、范围内、高于最高值,使用元组/范围类的包含类似于的方法,或者 这在一定程度上取决于您实际想要

我的数据是成对的值(例如,(0,2),(2,6),(6,0))。我想对每一对进行一些比较(例如,如果我的值为3,则它是给定值对之间的比较)。存储这些值并能够执行此类比较的最佳方式是什么


谢谢

将值存储为元组列表/集合、两元素数组或一个,或

比较本身提出了一些选择;您可以手动比较,如果在范围内/超出范围,则返回真/假。或者您可以实现
compariable
并与单个值进行比较,分别返回-1、0、1表示低于最低值、范围内、高于最高值,使用元组/范围类的
包含类似于
的方法,或者

这在一定程度上取决于您实际想要做什么,但大致上,使用
内部网

List<IntRange> ranges = new ArrayList<IntRange>() {{
    add(new IntRange(0, 2));
    add(new IntRange(2, 6));
    add(new IntRange(6, 0));
}};

public boolean inRange(int n, List<IntRange> ranges) {
    for (IntRange range : ranges) {
        if (range.containsInteger(n)) {
            return true;
        }
    }
    return false;
}
List ranges=new ArrayList(){{
添加(新的内部传输(0,2));
添加(新的内部传输(2,6));
添加(新的内部传输(6,0));
}};
公共布尔值范围(整数n,列表范围){
用于(内部传输范围:范围){
if(范围包含仪表(n)){
返回true;
}
}
返回false;
}

您还需要决定如何处理“反转范围”,如
6..0

创建一个专门用于此目的的类

public class Pair
{
  final int first;
  final int second;

  public Pair ( int first, int second )
  {
    // perform some validation that first is less than second
    ...
  }

  public boolean isValueInBetween( int value )
  {
     retrn value >= first && value <= second;
  }
}

如果我的值是3,那么它是在给定的一对值之间吗?我不知道,我假设,3不是在(0和2)或(6和0)之间,而是在(2和6)之间?@ziesemer-你确定3不是在6和0之间吗?@rfeak-不,我不是。这些要求不足以确定。3将介于0和6之间是的,但我还想考虑它介于6和0之间。是的,我也想计算它们(即,如果一对是(6,0)),我想考虑3的值。
Pair one( 0, 2);
Pair two( 2, 6);
Pair three( 0, 6);

System.out.println( one.isValueInBetween( 3 ) );
System.out.println( two.isValueInBetween( 3 ) );
System.out.println( three.isValueInBetween( 3 ) );