代码如下, 执行结果应该怎么解释呀? 程序很简单, 麻烦帮忙看下, 谢谢!
import java.util.Collections;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class TreeSetTest {
public static void main(String[] args){
String str = "MRbFCZFnmfPJhlFYoln,tmxPBkCLeKwZcCoTAzh,LUWqMHg,qfrBJPxTjF,QKEgYnNuSjpwHihgcK,VufRnSSkuGE,tuSGJwjjRQ,juzUTdIOergNYclAkDU,MBOZAcIi,OQljsZfLrsjAmVhxw,OLIndeoVAQ,dUNhBLThXeUgJnG,spcuXoePSj,xrNZArc,xqIkXvYStBUkg,WUMwGLYggBic,IeOIFbMZVAyupAkygT,EUZAAAlVNhyzNUWZXvH,XBKFPN,XUAlVq,znEhBCvvCmYSIhAVJSp,PNPuDXsozP,VhvYQhygALyfp,mEkzmHUgSmsfqlyhQARw,CVDEmjIWbDR,hwPucmOANsNX,OZMcBxPPhl,YyUNDtAg,xrAPnDlA,ElGyJqyPwf,lZElDM,fpwKhGfXHZdV,PlqEgPXANqijZcAIDsJz,FATeTVcJoiCdcR,TAUQkeLkSOV,LhDELDpN,xnqcFyNCgPnIplm,JOmTwjYMNuMhjDK,HePrRXfgDkvOkBjX,MMXGnRpsqEOSOSKGWZcH,REqdLqAORhtIiPEmkIb,oClzNLrMGdjuMqr,eEpVJqHnGWVMSkVh,pgKkjfRQj,gQLLpdFXeEeMwc,stOPPTsvjUOgy,SoletVJ,UnDtuEWOZmoy,kkXnwzyLhQWVfXcLxom,cRTAOvrEunD,WyXANBzHsAc,A,J,N,O,R,T,e,g,Nn,Ny,bA,tN,st,DYG,Eng,Yri,psG,IVkO,ODOc,eLEj,gNBX,mqOn,rmgA,BGeqP,TosXr,pHXUc,ptyEu,uPMxE,wMRlE,wlbZt,AxizjBAFvD,Jvfgcps,fBGmwglnEIrUIKFWgptN,bRKSqPBvx,JwGzVGIr,xNZnSACYEEbD,IxkCseXT,NGIhHWKxWS,cEHizFzmUq,YPNzAPZR,luGLTsFCkVBjA,nZgVTWyNQNQUUdfsxZA,rQsSmhJzxA,EnOOSugzONKXxkjOiq,XPplInuZBcqpy,huxxZYAdmJyFnQQxAfHJ,MpDjJRimYDfyo,BYAPwgWFBzBHohBAdD,CDJNqL";
Set<String> tSet = new TreeSet<>((o1, o2) -> o1.hashCode() - o2.hashCode());
Collections.addAll(tSet, str.split(","));
System.out.println("set is [" + setToString(tSet) + "]");
Iterator<String> itr = tSet.iterator();
while(itr.hasNext()){
String s = itr.next();
if(!tSet.contains(s)){
System.out.println("error, not contain : " + s);
return;
}
}
}
private static String setToString(Set<String> set){
java.util.Iterator<String> itr = set.iterator();
StringBuilder sb = new StringBuilder();
while(itr.hasNext()){
String str = itr.next();
sb.append(str).append(',');
}
return sb.toString();
}
}
执行结果:
set is [MRbFCZFnmfPJhlFYoln,tmxPBkCLeKwZcCoTAzh,EnOOSugzONKXxkjOiq,LUWqMHg,XPplInuZBcqpy,qfrBJPxTjF,QKEgYnNuSjpwHihgcK,VufRnSSkuGE,tuSGJwjjRQ,juzUTdIOergNYclAkDU,huxxZYAdmJyFnQQxAfHJ,MpDjJRimYDfyo,BYAPwgWFBzBHohBAdD,MBOZAcIi,OQljsZfLrsjAmVhxw,OLIndeoVAQ,CDJNqL,dUNhBLThXeUgJnG,spcuXoePSj,xrNZArc,xqIkXvYStBUkg,WUMwGLYggBic,IeOIFbMZVAyupAkygT,EUZAAAlVNhyzNUWZXvH,XBKFPN,XUAlVq,znEhBCvvCmYSIhAVJSp,PNPuDXsozP,VhvYQhygALyfp,mEkzmHUgSmsfqlyhQARw,CVDEmjIWbDR,hwPucmOANsNX,OZMcBxPPhl,YyUNDtAg,xrAPnDlA,ElGyJqyPwf,lZElDM,fpwKhGfXHZdV,PlqEgPXANqijZcAIDsJz,FATeTVcJoiCdcR,TAUQkeLkSOV,LhDELDpN,xnqcFyNCgPnIplm,JOmTwjYMNuMhjDK,HePrRXfgDkvOkBjX,MMXGnRpsqEOSOSKGWZcH,REqdLqAORhtIiPEmkIb,oClzNLrMGdjuMqr,eEpVJqHnGWVMSkVh,pgKkjfRQj,gQLLpdFXeEeMwc,stOPPTsvjUOgy,SoletVJ,UnDtuEWOZmoy,kkXnwzyLhQWVfXcLxom,cRTAOvrEunD,WyXANBzHsAc,A,J,N,O,R,T,e,g,Nn,Ny,bA,tN,st,DYG,Eng,Yri,psG,IVkO,ODOc,eLEj,gNBX,mqOn,rmgA,BGeqP,TosXr,pHXUc,ptyEu,uPMxE,wMRlE,wlbZt,AxizjBAFvD,Jvfgcps,fBGmwglnEIrUIKFWgptN,bRKSqPBvx,JwGzVGIr,xNZnSACYEEbD,IxkCseXT,NGIhHWKxWS,cEHizFzmUq,YPNzAPZR,luGLTsFCkVBjA,nZgVTWyNQNQUUdfsxZA,rQsSmhJzxA,]
error, not contain : MRbFCZFnmfPJhlFYoln
TreeSet里明明有MRbFCZFnmfPJhlFYoln, 为什么contains返回false?
###因为你传了个自定义的 comparator(o1, o2) -> o1.hashCode() - o2.hashCode()
如果想要默认行为的话不传就行