相关疑难解决方法(0)

什么是Java中的"代理对"?

我正在阅读文档StringBuffer,特别是reverse()方法.该文件提到了代理人对的一些内容.在这种情况下,什么是代理对?什么是代理人?

java unicode utf-16 surrogate-pairs

139
推荐指数
7
解决办法
5万
查看次数

更好的方法来生成字母表中所有字母的数组

现在我正在做

for (char c = 'a'; c <= 'z'; c++) {
    alphabet[c - 'a'] = c;
}
Run Code Online (Sandbox Code Playgroud)

但是有更好的方法吗?与Scala相似'a' to 'z'

java

65
推荐指数
7
解决办法
19万
查看次数

Java集合将字符串转换为字符列表

我想将包含的字符串转换为字符abc列表和字符的哈希集.我怎么能用Java做到这一点?

List<Character> charList = new ArrayList<Character>("abc".toCharArray());
Run Code Online (Sandbox Code Playgroud)

java string collections

49
推荐指数
6
解决办法
12万
查看次数

为什么 Arrays.stream() 不支持 char[] 唯一的数组?

在经历将原始数组转换为 Streams 的方法时,我发现char[]不支持,而支持其他原始数组类型。有什么特别的理由将它们排除在流中吗?

java java-8

43
推荐指数
4
解决办法
3166
查看次数

想要在java中从char数组创建一个字符流

从char数组,我想构建一个流来使用java 8功能,如过滤器和地图.

char[] list = {'a','c','e'};
Stream<Character> cStream = Stream.of(list);
// Stream<Character> cStream = Arrays.stream(list);
Run Code Online (Sandbox Code Playgroud)

第一种方法不起作用(原因:将cStream更改为Stream<char[]>).注释行也不起作用(原因:stream(T[])类型数组中的方法不适用于arguments(char[])).

我知道如果char[] list更改为int[],一切正常使用IntStream.但我不希望每次转换char[]int[]每个时间或更改到一个列表中,当我需要在使用流库char阵列.

java java-8 java-stream

38
推荐指数
4
解决办法
3万
查看次数

如何将字符串转换为Java 8字符流?

我发现这个问题是从java String中获取java.util.streams.IntStream但是我现在还没有找到这个方法,因为我使用的是Java 8.

更正:正如你们所指出的那样,我使用的是Java 7.现在方法chars()就在那里.但问题仍然适用:

如何Stream<Character>从字符串中获取?

java java-8 java-stream

19
推荐指数
1
解决办法
2万
查看次数

使用流将booleans的Object []转换为boolean []

我可以用这样的代码进行转换:

Object[] array = (Object[]) message.get(key);
boolean[] result = new boolean[array.length];
for (int i = 0; i < array.length; i++) {
    result[i] = (boolean) array[i];
}
Run Code Online (Sandbox Code Playgroud)

但是,我认为可以使用Java 8流进行相同的转换.我开始编写这样的代码:

boolean[] =  Arrays.stream(array)
                   .map(Boolean.class::cast)
                   .map(Boolean::booleanValue)
                   .toArray()
Run Code Online (Sandbox Code Playgroud)

但是这段代码不起作用.编译说

incompatible types: java.lang.Object[] cannot be converted to boolean[]
Run Code Online (Sandbox Code Playgroud)

我试图了解代码的问题.我认为这map(Boolean::booleanValue)将返回我可以收集的布尔值流toArray.

java arrays java-stream

19
推荐指数
3
解决办法
3872
查看次数

将字节数组转换为IntStream的最佳方法是什么?

Java 8具有java.util.stream.Stream和java.util.stream.IntStream类型.java.util.Arrays有一个方法

IntStream is = Arrays.stream(int[])
Run Code Online (Sandbox Code Playgroud)

但是没有这样的方法可以从byte [],short []或char []创建IntStream,将每个元素扩展为int.是否有一种从byte []创建IntStream的惯用/首选方法,所以我可以以函数方式操作字节数组?

我当然可以手动将byte []转换为int []并使用Arrays.stream(int []),或者使用IntStream.Builder:

public static IntStream stream(byte[] bytes) {
   IntStream.Builder isb = IntStream.builder();
   for (byte b: bytes) 
       isb.add((int) b); 
   return isb.build();
}
Run Code Online (Sandbox Code Playgroud)

但是由于复制了源代码,它们都不是很有用.

似乎没有一种简单的方法可以将InputStream(或者在本例中为ByteArrayInputStream)转换为IntStream,这对于在功能上处理InputStream非常有用.(明显遗漏?)

是否有更有效且不复制的功能方式?

java arrays java-8 java-stream

14
推荐指数
2
解决办法
6932
查看次数

为什么Java没有BooleanStream?

Java 8引入了流.原语有三个流(IntStream(of int),LongStream(of long),DoubleStream(of double))和对象的通用流.

我假设没有FloatStream,CharStream,ByteStream或ShortStream,因为它们都是现有流的"子类型".也就是说,一个流short可以使每个元素容易转换为int.

但为什么没有BooleanStream

java boolean java-8 java-stream

7
推荐指数
0
解决办法
301
查看次数

Java 8流是否不打算与字符和字符串一起使用?

我已经读过这篇相关的帖子了.在String操作方面,溪流似乎吸引了大量的仪式.如果要将String解析为可能需要执行某些操作的字符流,则需要将它们转换为IntStream第一个,映射到Object,然后转换为intto char,最后转换为charto String然后返回它.

人们说,命令式的节目编程有一个仪式开销.如果我完全做错了,请纠正我.我的目的不是嘲笑,而是更好地理解Java流,因为我一般都很欣赏它们.

// Simple method which encrypts all chars in a string
String input = "Hel!lo";

String result = input.chars()                               // Need to convert into an IntStream
        .mapToObj(e -> Character.toUpperCase((char) e))     // Need to map to Object (!) and then cast to char
        .map(CryptoMath::encryptChar)                       // Calling the encryption
        .map(String::valueOf)                               // Need to cast to String again...
        .collect(joining(""));                              // Finally done

System.out.println(result);
Run Code Online (Sandbox Code Playgroud)

string character java-8 java-stream

6
推荐指数
1
解决办法
1752
查看次数

无法解析Java流中的方法Character :: hashCode

在我的示例中,我尝试根据一系列字符创建一个ASCII表。我设法用a List字符串完成了操作,但是用了一个char数组失败了。

我收到Character::hashCode无法解决的错误Collectors.toMap()

Error:(26, 17) java: method collect in interface java.util.stream.IntStream cannot be applied to given types;
  required: java.util.function.Supplier<R>,java.util.function.ObjIntConsumer<R>,java.util.function.BiConsumer<R,R>
  found: java.util.stream.Collector<java.lang.Object,capture#1 of ?,java.util.Map<java.lang.Object,java.lang.Object>>
  reason: cannot infer type-variable(s) R
    (actual and formal argument lists differ in length)
Error:(26, 42) java: incompatible types: cannot infer type-variable(s) T,K,U,T
    (argument mismatch; invalid method reference
      incompatible types: java.lang.Object cannot be converted to char)
Run Code Online (Sandbox Code Playgroud)

有办法吗?

public class JavaCollectToMapEx2 {

    public static void main(String[] args) {
        // list of ASCII characters
        var …
Run Code Online (Sandbox Code Playgroud)

java lambda java-8 java-stream

3
推荐指数
1
解决办法
152
查看次数

Java 8引入了IntStream,LongStream和DoubleStream,为什么他们没有添加CharStream和StringStream?

为什么Java 8没有StringStream和CharStream.

StringStream.of("String1","String2");

StringStream.concat(stream1,stream2);

StringStream.builder().add("String1").add("string2").accept("string3");
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

-3
推荐指数
1
解决办法
169
查看次数