为了防止实现细节泄漏,而不是返回,例如,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
我想,我也跟着为什么加入应答Stream
到Iterable
了可能存在问题,但我不明白为什么一个Streaming<T>
已经不能提供的接口.例如,Collections
可以实现Streaming<T>
接口,并且可以使人们可以期待stream()
方法的其他对象更清楚.
基于对上述引用问题的答案,可以Stream
从Iterable
通过获得
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使用者来使用来自主题(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) 我试图过滤/减少其中包含一些重复条目的数据流.
从本质上讲,我试图找到一个比我实现的更好的过滤一组数据的解决方案.我们的数据在其基础上是这样的:
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)
我需要提取细节,以便:
这些数据被加载到对象中(每个"记录"一个实例),并且对象上还有其他字段,但它们与此过滤无关.细节存储为String,Date作为ZonedDateTime存储,Action是一个int
(实际上是一个enum
,但在这里显示为int …
该程序第一次创建首选项,但之后它永远不会更改它们.我很感激帮助理解为什么.
这是调用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) 基于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) 首先我想说这个问题是\xc2\xb4t重复的。
\n\n我想在 Jenkins 中安装插件。我去了更新中心,但我无法\xc2\xb4t 安装任何东西,因为我有这个错误:
\n\nIOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 Proxy Authentication Required".\n
Run Code Online (Sandbox Code Playgroud)\n\n另外,说到 Java,我有 64 位的 Java。
\n\n我尝试更改 JRE 文件夹并将 JRE 64 位的东西放在那里,因为 Jenkins 安装了 32 位,但它不起作用。我该如何解决这个问题?
\njava ×5
java-8 ×3
java-stream ×3
android ×1
apache-kafka ×1
arrays ×1
jenkins ×1
proxy ×1
store ×1