私は次のように設定しました:
Set<String>
Set の各要素を ; で分割する必要があります。2番目の要素のみを含む新しいセットを作成します。私はそれを直接一つずつ作るべきですか、それともより良い方法がありますか?ありがとう。
私は次のように設定しました:
Set<String>
Set の各要素を ; で分割する必要があります。2番目の要素のみを含む新しいセットを作成します。私はそれを直接一つずつ作るべきですか、それともより良い方法がありますか?ありがとう。
Set<String> suffixSet = new HashSet<String>();
for (String s : inputSet) {
      suffixSet.add(s.split(";")[1])
}
s に ; がない場合の適切なエラー チェックと処理も追加します。現在。
Set<String>出力が aであることの制約を緩和できる場合は、 Guava を使用して、 Collections2#transform()メソッドCollection<String>を介して要素が列挙されるまで要素の変換を延期できます。個々の要素で分割を実行するには、カスタム関数を作成するだけです。
しかし、この制約を緩和できない/緩和すべきでない場合は、すでに提案されている個々の反復を実行するのが最善です (はるかに読みやすいため)。
コードは次のようになります。
Set<String> input; //Given
Collection<String> output = Collections2.transform(input, new Function<String,String>() {
    @Override
    public String apply (String element) {
        // As JohnnyO says, add appropriate edge case checking...
        return element.split(";")[1]; 
    }
});
    情報が少ないのでなんとも言えません。splitセットを実行して別の に追加することを繰り返すことができSetます。
またはSet、たとえばHashMap、マップを作成するときに、文字列の最初の部分をキーとして、2 番目の部分を値として配置して、必要なときに 2 番目の部分を取得できるようにすることもできます。
または、文字列を自分で作成する場合は、それらを別のセットに直接配置する
か... (十分とは言えません) より多くのオプションを提供します
コードを表示していないため、何をしようとしているのかは推測することしかできません。Setを反復処理して、それぞれを分割する必要がありますString。必要に応じて分割方法を使用できます。