我有多个Set<String>
我需要合并为一个Set<String>
.如何在Java中执行此操作?请注意,我正在guava
尽可能地使用API来帮助解决问题.例如,我有3个类如下.
public class One {
public static Set<String> SET = Sets.newHashSet("a","b","c");
}
public class Two {
public static Set<String> SET = Sets.newHashSet("a","d","e","f");
}
public class Three {
public static Set<String> SET = Sets.newHashSet("w","x","y","f");
}
Run Code Online (Sandbox Code Playgroud)
现在,我需要将这些集合的任意组合合并为一个.例如,我可能需要合并
One.SET
+ Two.SET
+ Three.SET
成一个产生{"a","b","c","d","e","f","w","x","y"},One.SET
+ Three.SET
成一个产生{"a","b","c","w","x","y","f"},Two.SET
+ Three.SET
成一个产生{"a","d","e","f","w","x","y"},我创建了一个合并集合数组的方法Set<String>[]
,但是这不起作用(这里通过这个SO文章在Java中创建一个集合数组来解释).这是要合并的代码.它有效(编译).
public static Set<String> immutableSetOf(Set<String>[] sets) {
Set<String> set = new HashSet<String>();
for(Set<String> s : sets) {
set.addAll(s);
}
return …
Run Code Online (Sandbox Code Playgroud) 我目前正在使用Wowza来传输视频.我目前正在尝试集成Wowza,Android和ChromeCast设备(CCD).根据此文档,https://developers.google.com/cast/docs/media,Google Cast支持"MP4协议".
所以,我的问题是:MP4是流媒体协议,文件格式还是两者兼而有之?
在ChromeCast Android演示应用程序中,他们只是将这样的URL http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4
作为元数据传递给CCD.
对我而言,这意味着不需要服务器来传输MP4文件.意思是,我甚至不需要Wowza作为流媒体的中间方.
这种理解是否正确?
似乎客户端播放器将负责直接与MP4文件交互(例如,搜索,暂停,停止,播放等...).
我有一个 S3 存储桶demo
,里面有一个对象demo/somefolder
。当我调用s3.doesObjectExists("demo", "somefolder")
它时返回 false。但是,当我调用 时s3.listObjects("demo", "somefolder")
,ObjectListing
返回的 引用了S3ObjectSummary
.
对这里发生的事情有什么想法吗?
这是一个新手问题.我有一个看起来像下面的对象(例如MyObject.h
).
#import <Foundation/Foundation.h>
#import "JSONModel.h"
@protocol MyObject
@end
@interface MyObject : JSONModel
@property (strong,nonatomic) NSString* name;
@end
Run Code Online (Sandbox Code Playgroud)
实现如下(例如MyObject.m
).
#import "MyObject.h"
@implementation MyObject
@end
Run Code Online (Sandbox Code Playgroud)
在我的其他地方的代码中,我然后定义NSMutableArray
如下.
NSMutableArray<MyObject>* list;
list = [[NSMutableArray alloc] init];
Run Code Online (Sandbox Code Playgroud)
我收到了这个警告.
不兼容的指针类型从'NSMutableArray ' 分配'NSMutableArray <MyObject> '
我知道泛型不支持Objective-C开箱即用(这也不是我在这里要做的),但我NSMutableArray
的定义是这样的协议,MyObject
因为我试图关注"JSONModel"的GitHub页面中的示例.
代码仍在编译,但上面有警告.我如何能
NSMutableArray
正确分配/初始化?更新:
我继续搜索如何摆脱这个警告,事实证明,如果我创建一个NSMutableArray
像下面这样的警告消失(并且项目编译没有错误).我将编写一个单元测试,看它是否按预期工作.
list = (id)[NSMutableArray new];
Run Code Online (Sandbox Code Playgroud) 我有一个对象,我试图多次复制该对象,并对该对象进行一些细微的更改。我想将指向那些重复对象的指针存储在std::vector
. 我正在使用for
循环来尝试实现结果。但是,我注意到的是std::vector<T *>
循环退出后指向相同的地址。我试过这种尝试复制对象,std::string
我看到了相同的效果。这是我的代码片段。
int main() {
auto name = new std::string("fido");
const int size = 3;
std::vector<std::string *> names;
names.reserve(size);
for (int i = 0; i < size; i++) {
std::string n = *name + " " + std::to_string(i);
names.push_back(&n);
}
// nothing from this loop prints out
for (auto n : names) {
std::cout << *n << std::endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我将代码放在调试器中时,我看到它names
正在存储指向相同内存地址的指针:0x7ffffffeead0
. 关于我在这里做错了什么的任何想法?
我修改了代码以存储一个字符串向量,然后遍历每个字符串,创建一个指向每个字符串地址的指针,如下所示。这种方法也行不通。指针向量仍然指向同一个地址;虽然这一次,他们都指向了最后一个字符串的地址。
int main() …
Run Code Online (Sandbox Code Playgroud) amazon-s3 ×1
android ×1
aws-sdk ×1
c++ ×1
c++17 ×1
collections ×1
for-loop ×1
google-cast ×1
guava ×1
ios ×1
java ×1
jsonmodel ×1
mp4 ×1
objective-c ×1
pointers ×1