转换 Set 为 List

huangapple go评论64阅读模式
英文:

Converting Set<byte[]> to List<String>

问题

我在我的应用程序中使用了Redis内存数据库。我们正在使用sAdd方法将一些字符串值添加到集合中,并使用smembers方法从集合中获取这些值。该方法返回一个Set<byte[]>。我需要将这个集合转换为一个字符串列表。我尝试了下面的方法,但不起作用。

List<String> list = Arrays.asList((servKeys)).toArray();
英文:

I'm using redis in memory database in my application. We are adding to a set some string values using the sAdd method and fetching the values from set using the smembers method. This method is returning a Set<byte[]>. I need to convert this set to a list of String. I tried the below way but it is not working.

List&lt;String&gt; list = Arrays.asList((servKeys)).toArray();

答案1

得分: 1

你可以使用流API与Base64编码器:

List<String> list = servKeys.stream()
    .map(bytes -> Base64.getEncoder().encodeToString(bytes))
    .collect(Collectors.toList());

作为替代方案,你可以使用new String(bytes, StandardCharsets.UTF_8)

这取决于byte[]表示的数据类型。上面的代码假设是纯文本,然而你可以轻松调整其行为。

英文:

You can use Base64 encoder with Stream API:

List&lt;String&gt; list = servKeys.stream()
    .map(bytes -&gt; Base64.getEncoder().encodeToString(bytes))
    .collect(Collectors.toList());

Alternatively to Base64, you can use new String(bytes, StandardCharsets.UTF_8).

This depends on what kind of data byte[] is. The code above assumes a plain text, however, you can easily adjust the behavior.

huangapple
  • 本文由 发表于 2020年10月21日 16:39:26
  • 转载请务必保留本文链接:https://go.coder-hub.com/64459869.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定