📄 collationkey.java
字号:
// CollationKey.java - Sort key for locale-sensitive String./* Copyright (C) 1999, 2000 Free Software Foundation This file is part of libgcj.This software is copyrighted work licensed under the terms of theLibgcj License. Please consult the file "LIBGCJ_LICENSE" fordetails. */package java.text;/** * @author Tom Tromey <tromey@cygnus.com> * @date March 25, 1999 *//* Written using "Java Class Libraries", 2nd edition, plus online * API docs for JDK 1.2 from http://www.javasoft.com. * Status: Believed complete and correct. */public final class CollationKey implements Comparable{ public int compareTo (CollationKey target) { int max = Math.min(key.length, target.key.length); for (int i = 0; i < max; ++i) { if (key[i] != target.key[i]) return key[i] - target.key[i]; } return key.length - target.key.length; } public int compareTo (Object o) { return compareTo ((CollationKey) o); } public boolean equals (Object obj) { if (! (obj instanceof CollationKey)) return false; CollationKey ck = (CollationKey) obj; if (key.length != ck.key.length) return false; for (int i = 0; i < key.length; ++i) if (key[i] != ck.key[i]) return false; return true; } public String getSourceString () { return originalText; } public int hashCode () { // We just follow BitSet instead of thinking up something new. long h = originalText.hashCode(); for (int i = key.length - 1; i >= 0; --i) h ^= key[i] * (i + 1); return (int) ((h >> 32) ^ h); } public byte[] toByteArray () { byte[] r = new byte[4 * key.length]; int off = 0; for (int i = 0; i < key.length; ++i) { r[off++] = (byte) ((key[i] >>> 24) & 255); r[off++] = (byte) ((key[i] >>> 16) & 255); r[off++] = (byte) ((key[i] >>> 8) & 255); r[off++] = (byte) ((key[i] ) & 255); } return r; } CollationKey (CollationElementIterator iter, String originalText, int strength) { this.originalText = originalText; // Compute size of required array. int size = 0; while (RuleBasedCollator.next(iter, strength) != CollationElementIterator.NULLORDER) ++size; iter.reset(); key = new int[size]; for (int i = 0; i < size; i++) key[i] = RuleBasedCollator.next(iter, strength); } // Original string. private String originalText; // Collation key. private int[] key;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -