小编Kev*_*inO的帖子

为什么没有提供Stream <E>的接口?

为了防止实现细节泄漏,而不是返回,例如,Collection<MyCoolObject>可以实现Iterable<MyCoolObject>,然后需要Iterator<T>Iterable接口实现.因此,无论如何管理内部数据结构,对元素的访问都是通过Iterator.

使用Java 8,可能希望添加Stream<MyCoolObject> stream()MyCoolObject.(另请参阅:Java 8 Lambdasstream一书中支持的建议).虽然添加方法并不困难(我确实阅读了关于为什么Iterable不提供流的问题),但Java似乎没有添加一个接口来反映这个想法.(好吧,可能因为使用CORBA的东西而存在一个不同的名称).Streamable<T>Iterable<T>Streamable

我想,我也跟着为什么加入应答StreamIterable了可能存在问题,但我不明白为什么一个Streaming<T>已经不能提供的接口.例如,Collections可以实现Streaming<T>接口,并且可以使人们可以期待stream()方法的其他对象更清楚.

基于对上述引用问题的答案,可以StreamIterable通过获得

Stream s = StreamSupport.stream(iter.spliterator(), false);
Run Code Online (Sandbox Code Playgroud)

但这看起来似乎很多工作,MyObject可能只想实现stream()允许对象的用户这样做

myObject.stream().filter(...).collect(...)
Run Code Online (Sandbox Code Playgroud)

没有来自迭代器的干预转换.

缺少流媒体功能对象的接口是否有原因?有没有比仅仅stream()在MyCoolObject上实现并让某人查看Javadoc以便他们知道它有stream()方法更好的方法?

或者,很可能,我是否误解了Stream的方法?

(另外,我stream()在CoolObject中实现,但后来忘记实现parallelStream(),这可以通过使用接口来缓解).

java java-8 java-stream

16
推荐指数
1
解决办法
596
查看次数

Kafka Java消费者被标记为群体死亡

我正在使用Java使用者来使用来自主题(kafka版本0.10.0.1)的消息,如果我在docker容器之外运行它们,它可以正常工作.但是,当我在docker容器中执行它们时,那​​些组被标记为dead with message

Marking the coordinator local.kafka.com:9092 (id: 2147483647 rack: null) dead for group my-group
Run Code Online (Sandbox Code Playgroud)

我的消费者配置如下: -

metadata.max.age.ms = 300000
partition.assignment.strategy =[org.apache.kafka.clients.consumer.RangeAssignor]
reconnect.backoff.ms = 50
sasl.kerberos.ticket.renew.window.factor = 0.8
max.partition.fetch.bytes = 1048576
bootstrap.servers = [192.168.115.128:9092, 192.168.115.128:9093]
ssl.keystore.type = JKS
enable.auto.commit = true
sasl.mechanism = GSSAPI
interceptor.classes = null
exclude.internal.topics = true
ssl.truststore.password = null
client.id = consumer-1
ssl.endpoint.identification.algorithm = null
max.poll.records = 2147483647
check.crcs = true
request.timeout.ms = 40000
heartbeat.interval.ms = 3000
auto.commit.interval.ms = 5000
receive.buffer.bytes = 65536
ssl.truststore.type = JKS …
Run Code Online (Sandbox Code Playgroud)

java apache-kafka kafka-consumer-api

7
推荐指数
1
解决办法
4375
查看次数

流复制/减少重复的条目

我试图过滤/减少其中包含一些重复条目的数据流.

从本质上讲,我试图找到一个比我实现的更好的过滤一组数据的解决方案.我们的数据在其基础上是这样的:

Action | Date         | Detail
15     | 2016-03-15   | 
5      | 2016-03-15   | D1
5      | 2016-09-25   | D2      <--
5      | 2016-09-25   | D3      <-- same day, different detail
4      | 2017-02-08   | D4
4      | 2017-02-08   | D5
5      | 2017-03-01   | D6      <--
5      | 2017-03-05   | D6      <-- different day, same detail; need earliest
5      | 2017-03-08   | D7
5      | 2017-03-10   | D8
...
Run Code Online (Sandbox Code Playgroud)

我需要提取细节,以便:

  • 仅选择动作5
  • 如果细节相同(例如,D6在不同日期出现两次),则选择最早的日期

这些数据被加载到对象中(每个"记录"一个实例),并且对象上还有其他字段,但它们与此过滤无关.细节存储为String,Date作为ZonedDateTime存储,Action是一个int(实际上是一个enum,但在这里显示为int …

java java-8 java-stream

7
推荐指数
1
解决办法
440
查看次数

共享首选项仅在第一次保存

该程序第一次创建首选项,但之后它永远不会更改它们.我很感激帮助理解为什么.

这是调用xml的PreferencesScreen.

public class PreferencesScreen extends PreferenceFragment{

private final String TAG = "PreferencesScreen";

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.d(TAG, "OnCreate");
    addPreferencesFromResource(R.xml.prefs);
}
Run Code Online (Sandbox Code Playgroud)

在首选项中,我有一个ListPreference和一个Preference,它调用一个活动来存储电子邮件.

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

<PreferenceCategory android:title="Information Collected">
    <ListPreference 
        android:key="loggins"
        android:title="Logs Stored"
        android:summary="Choose the top kind of logs do you want to store."
        android:dialogTitle="Choose Logs"
        android:entries="@array/logs"
        android:entryValues="@array/logsValues"/>
</PreferenceCategory>

 <PreferenceCategory android:title="Email Configurations">
        <Preference
              android:key="pushing"
              android:title="The Email Activity"
              android:summary="Just push">
             <intent android:action = "ADDING_EMAIL"/>
        </Preference>
 </PreferenceCategory>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

一切都在这里.问题出在所谓的......

public class AddingEmail extends ListActivity implements OnClickListener{       

private Set<String> emails; 
private …
Run Code Online (Sandbox Code Playgroud)

android store sharedpreferences

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

是否有更高效的Java 8 Stream方法来查找int []中的索引?

基于BlackJack问题,我想知道如何表明所有获胜的手牌.实际上,原始问题只是简单地询问了两个不大于21的数字.所以这样的方法就像

public int blackjack(int a, int b);
Run Code Online (Sandbox Code Playgroud)

但是,如果有人希望返回所有获胜的牌(假设输入数组中的位置是桌子上的座位),那么签名如下:

/**
 * returns an array indicate the index in the specified hands that
 * correspond to the winning locations. Will return an empty array if
 * there are no winners. The length of the returned array is how many
 * winning hands there were
 * @param hands The total for each hand, where the index is the seat
 * @return the index/"seat" where a winning hand was found; may return …
Run Code Online (Sandbox Code Playgroud)

java arrays java-8 java-stream

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

Jenkins:IOException:无法通过代理建立隧道。代理返回“HTTP/1.1 407 需要代理身份验证”

首先我想说这个问题是\xc2\xb4t重复的

\n\n

我想在 Jenkins 中安装插件。我去了更新中心,但我无法\xc2\xb4t 安装任何东西,因为我有这个错误:

\n\n
IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 Proxy Authentication Required".\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的错误在更新中心中的样子。

\n\n

另外,说到 Java,我有 64 位的 Java。

\n\n

我尝试更改 JRE 文件夹并将 JRE 64 位的东西放在那里,因为 Jenkins 安装了 32 位,但它不起作用。我该如何解决这个问题?

\n

java proxy jenkins

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