本文将分享好奇于CaseInsensitiveComparator的实现[重复]的详细内容,并且还将对好奇举例进行详尽解释,此外,我们还将为大家带来关于Anincompatibleversion[1.
本文将分享好奇于CaseInsensitiveComparator的实现[重复]的详细内容,并且还将对好奇举例进行详尽解释,此外,我们还将为大家带来关于An incompatible version [1.1.29] of the APR based Apache Tomcat Native library is installed, whil...、com.intellij.util.text.CaseInsensitiveStringHashingStrategy的实例源码、com.vividsolutions.jts.geom.CoordinateSequenceComparator的实例源码、ims.core.vo.domain.PrivateInsuranceCompanyVoAssembler的实例源码的相关知识,希望对你有所帮助。
本文目录一览:- 好奇于CaseInsensitiveComparator的实现[重复](好奇举例)
- An incompatible version [1.1.29] of the APR based Apache Tomcat Native library is installed, whil...
- com.intellij.util.text.CaseInsensitiveStringHashingStrategy的实例源码
- com.vividsolutions.jts.geom.CoordinateSequenceComparator的实例源码
- ims.core.vo.domain.PrivateInsuranceCompanyVoAssembler的实例源码
好奇于CaseInsensitiveComparator的实现[重复](好奇举例)
在检查的实现(CaseInsensitiveComparator
它是的私有内部类)时String
,我发现了奇怪的事情。
private static class CaseInsensitiveComparator implements Comparator<String>, java.io.Serializable { ... public int compare(String s1, String s2) { int n1 = s1.length(); int n2 = s2.length(); int min = Math.min(n1, n2); for (int i = 0; i < min; i++) { char c1 = s1.charAt(i); char c2 = s2.charAt(i); if (c1 != c2) { c1 = Character.toUpperCase(c1); c2 = Character.toUpperCase(c2); if (c1 != c2) { c1 = Character.toLowerCase(c1); c2 = Character.toLowerCase(c2); if (c1 != c2) { // No overflow because of numeric promotion return c1 - c2; } } } } return n1 - n2; } ...}
我很好奇的是:在for
循环中,一旦比较了大写字母,为什么还要再次比较小写字母?如果Character.toUpperCase(c1)
和Character.toUpperCase(c2)
是不同的,是有可能,Character.toLowerCase(c1)
并且Character.toLowerCase(c2)
是平等的吗?
这样不能简化吗?
public int compare(String s1, String s2) { int n1 = s1.length(); int n2 = s2.length(); int min = Math.min(n1, n2); for (int i = 0; i < min; i++) { char c1 = s1.charAt(i); char c2 = s2.charAt(i); if (c1 != c2) { c1 = Character.toUpperCase(c1); c2 = Character.toUpperCase(c2); if (c1 != c2) { // No overflow because of numeric promotion return c1 - c2; } } } return n1 - n2;}
我错过了什么?
答案1
小编典典有些Unicode字符的小写字母不同,但大写字母格式相同。例如希腊字母Sigma-它有两种小写形式(σ和ς,仅在单词的末尾使用),但只有一种大写形式(Σ)。
我找不到任何相反的例子,但是如果将来发生这种情况,那么当前的Java实现已经为此做好了准备。您的版本Comparator
肯定可以正确处理Sigma情况。
您可以在Unicode网站上的“
案例映射常见问题”中找到更多信息。
An incompatible version [1.1.29] of the APR based Apache Tomcat Native library is installed, whil...
问题描述
首先,这是一个提示信息而不是报错,并不影响 Tomcat 的使用。它是建议你使用一个 Tomcat 的性能调优原生库文件 tcnative-1.dll
几天前,我想尝试一下 Apache Tomcat 8.0 以上的版本,结果在 Eclipse 中配置 Server 时它就报错了:The Apache Tomcat installation at this directory is version 8.5.40. A Tomcat 8.0 installation is expected.。参照网友们提供的方法也解决了,但是在启动 Tomcat 服务的时候,它出现了一个问题:严重: An incompatible version [1.1.29] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
解决方法
- 打开网址:http://archive.apache.org/dist/tomcat/tomcat-connectors/native/
- 选择
Tomcat requires version [1.2.14]
,即下载tomcat-native-1.2.14-win32-bin.zip
- 解压后里面有 32 位和 64 位的
tcnative-1.dll
文件,根据自己JDK
和Tomcat
版本选择,将其复制到 JDK 的 bin 目录下,Clean... Tomcat 之后重新启动 Tomcat 服务即可。
关于 tcnative-1.dll
The Apache Tomcat Native Library provides portable API for features
not found in contemporary JDK''s. It uses Apache Portable Runtime as
operating system abstraction layer and OpenSSL for SSL networking and
allows optimal performance in production environments.
com.intellij.util.text.CaseInsensitiveStringHashingStrategy的实例源码
protected void setupEnvironment(@NotNull Map<String,String> environment) { environment.clear(); if (myParentEnvironmentType != ParentEnvironmentType.NONE) { environment.putAll(getParentEnvironment()); } if (!myEnvParams.isEmpty()) { if (SystemInfo.isWindows) { THashMap<String,String> envVars = new THashMap<String,String>(CaseInsensitiveStringHashingStrategy.INSTANCE); envVars.putAll(environment); envVars.putAll(myEnvParams); environment.clear(); environment.putAll(envVars); } else { environment.putAll(myEnvParams); } } }
private FileTypeAssocTable(Map<String,T> extensionMappings,Map<String,T> exactFileNameMappings,T> exactFileNameAnyCaseMappings,List<Pair<FileNameMatcher,T>> matchingMappings) { myExtensionMappings = new THashMap<String,T>(extensionMappings); myExactFileNameMappings = new THashMap<String,T>(exactFileNameMappings); myExactFileNameAnyCaseMappings = new THashMap<String,T>(exactFileNameAnyCaseMappings,CaseInsensitiveStringHashingStrategy.INSTANCE) { @Override public T remove(Object key) { T removed = super.remove(key); myHasAnyCaseExactMappings = size() > 0; return removed; } @Override public T put(String key,T value) { T result = super.put(key,value); myHasAnyCaseExactMappings = true; return result; } }; myMatchingMappings = new ArrayList<Pair<FileNameMatcher,T>>(matchingMappings); }
void setupEnvironment(final Map<String,String> environment) { environment.clear(); if (myPassparentEnvironment) { environment.putAll(EnvironmentUtil.getEnvironmentMap()); } if (!myEnvParams.isEmpty()) { if (SystemInfo.isWindows) { THashMap<String,String>(CaseInsensitiveStringHashingStrategy.INSTANCE); envVars.putAll(environment); envVars.putAll(myEnvParams); environment.clear(); environment.putAll(envVars); } else { environment.putAll(myEnvParams); } } }
@NotNull @Override protected Map<String,HeaderParser> compute() { Map<String,HeaderParser> map = new THashMap<String,HeaderParser>(CaseInsensitiveStringHashingStrategy.INSTANCE); for (HeaderParserProvider provider : Extensions.getExtensions(HeaderParserProvider.EP_NAME)) { map.putAll(provider.getHeaderParsers()); } return map; }
@NotNull private static ObjectIntHashMap<String> createStringIntMap(int initialCapacity) { if (initialCapacity == -1) { initialCapacity = 4; } return SystemInfo.isFileSystemCaseSensitive ? new ObjectIntHashMap<String>(initialCapacity) : new ObjectIntHashMap<String>(initialCapacity,CaseInsensitiveStringHashingStrategy.INSTANCE); }
void addAdoptedname(String name,boolean caseSensitive) { if (myAdoptednames == null) { //noinspection unchecked myAdoptednames = new THashSet<String>(0,caseSensitive ? TObjectHashingStrategy.CANONICAL : CaseInsensitiveStringHashingStrategy.INSTANCE); } myAdoptednames.add(name); }
private static Map<String,String> getSystemEnv() { if (SystemInfo.isWindows) { return unmodifiableMap(new THashMap<String,String>(System.getenv(),CaseInsensitiveStringHashingStrategy.INSTANCE)); } else { return System.getenv(); } }
@NotNull @Override protected Map<String,String> compute() { Map<String,String> env = ourEnvironment.getValue(); if (SystemInfo.isWindows) { env = Collections.unmodifiableMap(new THashMap<String,String>(env,CaseInsensitiveStringHashingStrategy.INSTANCE)); } return env; }
protected void setupEnvironment(@Nonnull Map<String,String> environment) { environment.clear(); if (myParentEnvironmentType != ParentEnvironmentType.NONE) { environment.putAll(getParentEnvironment()); } if (SystemInfo.isUnix) { File workdirectory = getworkdirectory(); if (workdirectory != null) { environment.put("PWD",FileUtil.toSystemDependentName(workdirectory.getAbsolutePath())); } } if (!myEnvParams.isEmpty()) { if (SystemInfo.isWindows) { THashMap<String,String> envVars = new THashMap<>(CaseInsensitiveStringHashingStrategy.INSTANCE); envVars.putAll(environment); envVars.putAll(myEnvParams); environment.clear(); environment.putAll(envVars); } else { environment.putAll(myEnvParams); } } }
void addAdoptedname(String name,caseSensitive ? TObjectHashingStrategy.CANONICAL : CaseInsensitiveStringHashingStrategy.INSTANCE); } myAdoptednames.add(name); }
private static Map<String,CaseInsensitiveStringHashingStrategy.INSTANCE)); } else { return System.getenv(); } }
public MyTHashMap() { super(SystemInfo.isWindows ? CaseInsensitiveStringHashingStrategy.INSTANCE : ContainerUtil.<String>canonicalStrategy()); }
public MyTHashMap() { super(SystemInfo.isWindows ? CaseInsensitiveStringHashingStrategy.INSTANCE : ContainerUtil.<String>canonicalStrategy()); }
@Override public int getHashCode(String value) { return CaseInsensitiveStringHashingStrategy.INSTANCE.computeHashCode(value); }
@Override public boolean isEqual(String val1,String val2) { return CaseInsensitiveStringHashingStrategy.INSTANCE.equals(val1,val2); }
com.vividsolutions.jts.geom.CoordinateSequenceComparator的实例源码
@Override protected int comparetoSameClass(Object other,CoordinateSequenceComparator comp) { Envelope env = (Envelope) other; Envelope mbr = this.MBR; // compare based on numerical ordering of ordinates if (mbr.getMinX() < env.getMinX()) return -1; if (mbr.getMinX() > env.getMinX()) return 1; if (mbr.getMinY() < env.getMinY()) return -1; if (mbr.getMinY() > env.getMinY()) return 1; if (mbr.getMaxX() < env.getMaxX()) return -1; if (mbr.getMaxX() > env.getMaxX()) return 1; if (mbr.getMaxY() < env.getMaxY()) return -1; if (mbr.getMaxY() > env.getMaxY()) return 1; return 0; }
void runGeometry(Geometry g,int dimension,int byteOrder,boolean toHex,int srid) throws IOException,ParseException { boolean includeSRID = false; if (srid >= 0) { includeSRID = true; g.setSRID(srid); } WKBWriter wkbWriter = new WKBWriter(dimension,byteOrder,includeSRID); byte[] wkb = wkbWriter.write(g); String wkbHex = null; if (toHex) wkbHex = WKBWriter.toHex(wkb); if (toHex) wkb = WKBReader.hexToBytes(wkbHex); Geometry g2 = wkbReader.read(wkb); CoordinateSequenceComparator comp = (dimension == 2) ? comp2 : comp3; boolean isEqual = (g.compareto(g2,comp) == 0); assertTrue(isEqual); if (includeSRID) { boolean isSRIDEqual = g.getSRID() == g2.getSRID(); assertTrue(isSRIDEqual); } }
@Override protected int comparetoSameClass(final Object o,final CoordinateSequenceComparator comp) { final DynamicLinestring line = (DynamicLinestring) o; return comp.compare(getCoordinateSequence(),line.getCoordinateSequence()); }
ims.core.vo.domain.PrivateInsuranceCompanyVoAssembler的实例源码
public PrivateInsuranceCompanyVo getPrivateInsuranceCompany(String extId,TaxonomyType taxonomyType) { if (extId == null || taxonomyType == null) return null; DomainFactory factory = getDomainFactory(); String hql = " from PrivateInsuranceCompany company " + " join company.codeMappings as cm" + " where cm.taxonomyName = :taxType " + " and cm.taxonomyCode = :extId "; List<?> companyList = factory.find(hql,new String[]{"taxType","extId"},new Object[]{getDomLookup(taxonomyType),extId}); if (companyList != null && companyList.size() > 0) { PrivateInsuranceCompany company = (PrivateInsuranceCompany)companyList.get(0); return PrivateInsuranceCompanyVoAssembler.create(company); } return null; }
/** * Retrieves a PrivateInsuranceCompanyVo */ public ims.core.vo.PrivateInsuranceCompanyVoCollection listPrivateInsuranceCompanyVo(Boolean active) { ArrayList names = new ArrayList(); ArrayList values = new ArrayList(); DomainFactory factory = getDomainFactory(); StringBuffer hql = new StringBuffer("from PrivateInsuranceCompany pic "); if (active.equals(Boolean.TRUE)) { hql.append (" where pic.isActive = :isActive"); names.add("isActive"); values.add(Boolean.TRUE); } hql.append(" order by pic.upperName asc"); //WDEV-20219 upper(pic.name) List list = factory.find(hql.toString(),names,values); return(PrivateInsuranceCompanyVoAssembler.createPrivateInsuranceCompanyVoCollectionFromPrivateInsuranceCompany(list)); }
/** * Saves a PrivateInsuranceCompanyVo */ public ims.core.vo.PrivateInsuranceCompanyVo savePrivateInsuranceCompanyVo(ims.core.vo.PrivateInsuranceCompanyVo privateInsuranceCompanyVo) throws ims.domain.exceptions.StaleObjectException { // Check for value to save if (privateInsuranceCompanyVo == null) throw new DomainRuntimeException("Domain Error - Can not save a null privateInsuranceCompanyVo record"); // Check for validated record if (!privateInsuranceCompanyVo.isValidated()) throw new DomainRuntimeException("Domain Error - privateInsuranceCompanyVo record must be validated before save"); DomainFactory factory = getDomainFactory(); PrivateInsuranceCompany privateInsuranceCompany = PrivateInsuranceCompanyVoAssembler.extractPrivateInsuranceCompany(factory,privateInsuranceCompanyVo); privateInsuranceCompany.getCodeMappings().clear(); List mappings = TaxonomyMapAssembler.extractTaxonomyMapList(factory,privateInsuranceCompanyVo.getCodeMappings()); privateInsuranceCompany.setCodeMappings(mappings); factory.save(privateInsuranceCompany); privateInsuranceCompanyVo = PrivateInsuranceCompanyVoAssembler.create(privateInsuranceCompany); return privateInsuranceCompanyVo; }
public PrivateInsuranceCompanyVo getPrivateInsuranceCompany(String extId,extId}); if (companyList != null && companyList.size() > 0) { PrivateInsuranceCompany company = (PrivateInsuranceCompany)companyList.get(0); return PrivateInsuranceCompanyVoAssembler.create(company); } return null; }
public PrivateInsuranceCompanyVo getPrivateInsuranceCompany(String extId,extId}); if (companyList != null && companyList.size() > 0) { PrivateInsuranceCompany company = (PrivateInsuranceCompany)companyList.get(0); return PrivateInsuranceCompanyVoAssembler.create(company); } return null; }
public ims.core.vo.PrivateInsuranceCompanyVoCollection listPrivateInsuranceCompanyVo() { DomainFactory factory = getDomainFactory(); String query = "select p1_1 from PrivateInsuranceCompany as p1_1 where (p1_1.isActive = 1) order by p1_1.upperName asc "; List<?> privateInsuranceComp = factory.find(query); if( privateInsuranceComp != null && privateInsuranceComp.size() > 0) { return PrivateInsuranceCompanyVoAssembler.createPrivateInsuranceCompanyVoCollectionFromPrivateInsuranceCompany(privateInsuranceComp); } return null; }
@Override public PrivateInsuranceCompanyVoCollection listPrivateInsuranceCompanyVo() { DomainFactory factory = getDomainFactory(); String query = "select p1_1 from PrivateInsuranceCompany as p1_1 where (p1_1.isActive = 1) order by p1_1.upperName asc "; List<?> privateInsuranceComp = factory.find(query); if( privateInsuranceComp != null && privateInsuranceComp.size() > 0) { return PrivateInsuranceCompanyVoAssembler.createPrivateInsuranceCompanyVoCollectionFromPrivateInsuranceCompany(privateInsuranceComp); } return null; }
/** * getPrivateInsuranceCompanyVo */ public ims.core.vo.PrivateInsuranceCompanyVo getPrivateInsuranceCompanyVo(ims.core.configuration.vo.PrivateInsuranceCompanyRefVo privateInsuranceCompanyRefVo) { if (privateInsuranceCompanyRefVo == null || !privateInsuranceCompanyRefVo.getID_PrivateInsuranceCompanyIsNotNull()) return null; PrivateInsuranceCompany pim = (PrivateInsuranceCompany) getDomainFactory().getDomainObject(PrivateInsuranceCompany.class,privateInsuranceCompanyRefVo.getID_PrivateInsuranceCompany()); return PrivateInsuranceCompanyVoAssembler.create(pim); }
public PrivateInsuranceCompanyVoCollection listCompanies() { ArrayList names = new ArrayList(); ArrayList values = new ArrayList(); DomainFactory factory = getDomainFactory(); StringBuffer hql = new StringBuffer("from PrivateInsuranceCompany pic "); hql.append (" where pic.isActive = :isActive"); names.add("isActive"); values.add(Boolean.TRUE); List list = factory.find(hql.toString(),values); return(PrivateInsuranceCompanyVoAssembler.createPrivateInsuranceCompanyVoCollectionFromPrivateInsuranceCompany(list).sort()); }
public PrivateInsuranceCompanyVoCollection listPrivateInsuranceCompanyVo() { DomainFactory factory = getDomainFactory(); String query = "select p1_1 from PrivateInsuranceCompany as p1_1 where (p1_1.isActive = 1) order by p1_1.upperName asc "; List<?> privateInsuranceComp = factory.find(query); if( privateInsuranceComp != null && privateInsuranceComp.size() > 0) { return PrivateInsuranceCompanyVoAssembler.createPrivateInsuranceCompanyVoCollectionFromPrivateInsuranceCompany(privateInsuranceComp); } return null; }
我们今天的关于好奇于CaseInsensitiveComparator的实现[重复]和好奇举例的分享就到这里,谢谢您的阅读,如果想了解更多关于An incompatible version [1.1.29] of the APR based Apache Tomcat Native library is installed, whil...、com.intellij.util.text.CaseInsensitiveStringHashingStrategy的实例源码、com.vividsolutions.jts.geom.CoordinateSequenceComparator的实例源码、ims.core.vo.domain.PrivateInsuranceCompanyVoAssembler的实例源码的相关信息,可以在本站进行搜索。
本文标签: