在 Go 中,是否有比以下更惯用的方法将数组/切片的所有元素添加到通道中?
ch := make(chan string)
values := []string{"lol", "cat", "lolcat"}
go func() {
for _, v := range values {
ch <- v
}
}()
Run Code Online (Sandbox Code Playgroud)
我正在寻找类似ch <- values...但被编译器拒绝的东西。
我尝试为字谜编写一个小代码,然后我写下了onw.
String s = "anagram";
String t = "nagara";
Map<Character,Integer> map1 = new HashMap<Character,Integer>();
Map<Character,Integer> map2 = new HashMap<Character,Integer>();
if (s.length() != t.length()) {
System.out.println("Not an anagram");
} else {
for (int i= 0;i<s.length();i++) {
char c = s.charAt(i);
char d = t.charAt(i);
if (map1.containsKey(c)) {
map1.put(c, map1.get(c)+1);
} else {
map1.put(c,1);
}
if (map2.containsKey(d)) {
map2.put(d, map2.get(d)+1);
} else {
map2.put(d,1);
}
}
for (Map.Entry<Character, Integer> entry : map1.entrySet()) {
if (!map2.containsKey(entry.getKey())) {
System.out.println("Not an anagram");
} else if …Run Code Online (Sandbox Code Playgroud) 我有以下课程:
public class Base{
private String str;
public Base(String str){
this.str = str;
}
public String getStr(){
return str;
}
}
public class Derived extends Base{
public Derived(){
super("String");
System.out.prinln(getStr()); //Is it reliable?
}
}
Run Code Online (Sandbox Code Playgroud)
在构造派生类期间获取对基类intance的访问是否可靠?
上下文:给定一个目录,我想在列表中列出其名称中包含模式的所有文件,按lastModified时间戳排序,并将此列表格式化为Json字符串,我将获取每个文件的名称和时间戳:
[{"name": "somefile.txt", "timestamp": 123456},
{"name": "otherfile.txt", "timestamp": 456789}]
Run Code Online (Sandbox Code Playgroud)
我有以下代码:
private StringBuilder jsonFileTimestamp(File file) {
return new StringBuilder("{\"name\":\"")
.append(file.getName())
.append("\", \"timestamp\":")
.append(file.lastModified())
.append("}");
}
public String getJsonString(String path, String pattern, int skip, int limit) throws IOException {
return Files.list(Paths.get(path))
.map(Path::toFile)
.filter(file -> {
return file.getName().contains(pattern);
})
.sorted((f1, f2) -> {
return Long.compare(f2.lastModified(), f1.lastModified());
})
.skip(skip)
.limit(limit)
.map(f -> jsonFileTimestamp(f))
.collect(Collectors.joining(",", "[", "]"));
}
Run Code Online (Sandbox Code Playgroud)
这很好用.我只关心StringBuilder实例化(或字符串连接)的性能.只要文件数量很少就可以了(这是我的情况,所以我很好),但我很好奇:你会建议什么作为优化?我觉得我应该使用reduce正确的累加器和组合器,但我不能让我的大脑围绕它.
谢谢.
我终于进行了以下"优化":
private StringBuilder jsonFileTimestampRefactored(StringBuilder res, File file) {
return res.append(res.length() …Run Code Online (Sandbox Code Playgroud) 我有这样的java程序
public class Distribution {
private LinkedList<Integer > group[];
public Distribution() {
group[0] = new LinkedList<>();
group[0].add(1);
group[0].add(2);
group[0].add(3);
group[1] = new LinkedList<>();
group[1].add(4);
group[1].add(5);
group[1].add(6);
}
public static void main(String args[])
{
Distribution distribution = new Distribution();
}
}
Run Code Online (Sandbox Code Playgroud)
但编译器在线程"main"java.lang.NullPointerException中表示Exception.
java ×4
anagram ×1
channel ×1
class ×1
go ×1
java-8 ×1
java-stream ×1
optimization ×1
slice ×1
string ×1