Java 怎么比较字节(byte)数组

2019年4月30日07:35:24 评论 93

1.简介

Java 怎么比较字节(byte)数组?——请看下文。

2.代码

/**
 * 版权所有 编程十万个怎么办(www.tah1986.com)
 */
public class CompareByteArray {
	public static void main(String[] argv) {
		byte[] bytes1 = new byte[]{1,2,3,4,5};
		byte[] bytes2 = new byte[]{1,2,3,4,5};
		System.out.println("bytes1:"+Arrays.toString(bytes1));
		System.out.println("bytes2:"+Arrays.toString(bytes2));
		System.out.println("bytes1 是否等于 bytes2");
		System.out.println(compareByteArrays(bytes1, bytes2) == 0);
	}

	private static int compareByteArrays(byte[] bytes1, byte[] bytes2) {
		if (null == bytes1) {
			if (null == bytes2) {
				return 0;
			} else {
				return -1;
			}
		}
		if (null == bytes2) {
			return 1;
		}

		for (int i = 0; i < bytes1.length && i < bytes2.length; i++) {
			int cmp = compareBytes(bytes1[i], bytes2[i]);
			if (0 != cmp) {
				return cmp;
			}
		}
		if (bytes1.length == bytes2.length) {
			return 0;
		} else {
			return (bytes1.length < bytes2.length) ? -1 : 1;
		}
	}

	private static int compareBytes(byte b1, byte b2) {
		return compareBytes((int) b1, (int) b2);
	}

	private static int compareBytes(int b1, int b2) {
		int i1 = b1 & 0xFF;
		int i2 = b2 & 0xFF;
		return Integer.compare(i1, i2);
	}
}

3.结果

4.总结

Java 比较字节(byte)数组,参见示例代码。从示例代码可以看出,比较还是很简单的,无非是对数组是否为 null,不是null,那么就比较长度,长度要是相等就比较
字节(byte)数组中每个元素。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: