私は、題し
大きな「水の王」があり、彼はポストを好んでなく、各ポストによって発行された他のIDに対応するだけでなく。ポスト「水の王」の数より多くの記事の総数の半分以上。あなたも投稿者のIDテーブルでフォーラム(含む応答)リスト、上の現在のすべての記事を持っている場合は、すぐにこの伝説的な王が行う水を見つけることができますか?
第二に、デザインのアイデア
「水の王が」彼は投稿の総数の半分以上なので、投稿を削除する最も恐れて、その後、私たちは同じIDとの比較に二から左折することができ、異なるIDがなくなります。
パッケージtiezi。 パブリック クラス豆{ int型のID。 文字名; 公共 INT のgetId(){ 戻りID。 } 公共 ボイド SETID(int型のID){ この .ID = ID。 } パブリック チャーのgetName(){ 戻り名。 } 公共 ボイドのsetName(チャー名){ この .nameの= 名前。 } }
パッケージtiezi。 インポートのjava.sql.Connection; インポートのjava.sql.ResultSet; 輸入ます。java.sql.SQLException; 輸入java.sql.Statementの。 輸入tiezi.DBUtil; パブリック クラスchaxun { 公共 静的 ボイドメイン(文字列[]引数){ // INT ID = 1。 int型のq = 0 ; INT W = 0 。 int型のp = 0 ; 列A = "01A" 。 列B = "02A" 。 列c = "03A" 。 以下のための(INTの ID = 1、ID <8は、ID ++ ){ 文字列のSQL = "+ ID + " '' tiezi ID = SELECT * FROM"" 。 接続CONN = DBUtil.getConn()。 ステートメント状態 = ヌル。 ResultSetのRS = nullを。 文字列名[] = 新しい文字列[200 ]。 文字列str = nullを。 int型私= 0 ; 試す{ 状態 = conn.createStatement()。 RS =state.executeQuery(SQL)。 もし(rs.next()){ STR = rs.getString( "名" ); // 名前[I] = STR。 // 私は++します; I ++ ; } // するSystem.out.println(名前[I])。 もし(str.equals(A)){ Q ++ 。 } そう であれば(str.equals(B)){ W ++ 。 } そう であれば(str.equals(C)){ P ++ 。 // System.out.println(W)。 // するSystem.out.println(P); } // のSystem.out.println(Q)。 } キャッチ(のSQLException E){ e.printStackTrace(); } 最後に{ DBUtil.close(RS、状態、CONN)。 } } int型の最大値。 もし(Q> W){ 最大 = Q。 } そう であれば(P> Q){ 最大 = P。 } 他{ マックス = W。 } IF(Q == MAX){ するSystem.out.println( "水王" + C);} } }
パッケージtiezi。 インポートのjava.sql.Connection; インポートのjava.sql.ResultSet; 輸入ます。java.sql.SQLException; 輸入java.sql.Statementの。 輸入tiezi.DBUtil; パブリック クラスchaxun { 公共 静的 ボイドメイン(文字列[]引数){ // INT ID = 1。 int型のq = 0 ; INT W = 0 。 int型のp = 0 ; 列A = "01A" 。 列B = "02A" 。 列c = "03A" 。 以下のための(INTの ID = 1、ID <8は、ID ++ ){ 文字列のSQL = "+ ID + " '' tiezi ID = SELECT * FROM"" 。 接続CONN = DBUtil.getConn()。 ステートメント状態 = ヌル。 ResultSetのRS = nullを。 文字列名[] = 新しい文字列[200 ]。 文字列str = nullを。 int型私= 0 ; 試す{ 状態 = conn.createStatement()。 RS =state.executeQuery(SQL)。 もし(rs.next()){ STR = rs.getString( "名" ); // 名前[I] = STR。 // 私は++します; I ++ ; } // するSystem.out.println(名前[I])。 もし(str.equals(A)){ Q ++ 。 } そう であれば(str.equals(B)){ W ++ 。 } そう であれば(str.equals(C)){ P ++ 。 // System.out.println(W)。 // するSystem.out.println(P); } // のSystem.out.println(Q)。 } キャッチ(のSQLException E){ e.printStackTrace(); } 最後に{ DBUtil.close(RS、状態、CONN)。 } } int型の最大値。 もし(Q> W){ 最大 = Q。 } そう であれば(P> Q){ 最大 = P。 } 他{ 最大 = W。 } IF(Q == MAX){ するSystem.out.println( "水王" + C);} } }
スクリーンショット実験: