我想使用Java 8的流和lambdas将对象列表转换为Map.
这就是我在Java 7及以下版本中编写它的方法.
private Map<String, Choice> nameMap(List<Choice> choices) {
final Map<String, Choice> hashMap = new HashMap<>();
for (final Choice choice : choices) {
hashMap.put(choice.getName(), choice);
}
return hashMap;
}
Run Code Online (Sandbox Code Playgroud)
我可以使用Java 8和Guava轻松完成此任务,但我想知道如何在没有Guava的情况下完成此操作.
在番石榴:
private Map<String, Choice> nameMap(List<Choice> choices) {
return Maps.uniqueIndex(choices, new Function<Choice, String>() {
@Override
public String apply(final Choice input) {
return input.getName();
}
});
}
Run Code Online (Sandbox Code Playgroud)
还有Java 8 lambda的番石榴.
private Map<String, Choice> nameMap(List<Choice> choices) {
return Maps.uniqueIndex(choices, Choice::getName);
}
Run Code Online (Sandbox Code Playgroud) 请查看下面的代码:
// A.class
File file = new File("blah.txt");
FileWriter fileWriter = new FileWriter(file);
PrintWriter printWriter = new PrintWriter(fileWriter);
// B.class
File file = new File("blah.txt");
FileWriter fileWriter = new FileWriter(file);
BufferedWriter bWriter = new BufferedWriter(fileWriter);
Run Code Online (Sandbox Code Playgroud)
这两种方法有什么区别?
什么时候应该在BufferedWriter上使用PrintWriter?
我有一个css文件,我希望每次都添加一个空行}.
我怎么能在Vim中这样做?
我最近遇到了Vim regex builtins中的分支说明符.Vim的帮助部分\&包含:
A branch is one or more concats, separated by "\&". It matches the last
concat, but only if all the preceding concats also match at the same
position. Examples:
"foobeep\&..." matches "foo" in "foobeep".
".*Peter\&.*Bob" matches in a line containing both "Peter" and "Bob"
Run Code Online (Sandbox Code Playgroud)
目前尚不清楚它是如何使用的以及它的用途.对它的作用以及如何使用它的一个很好的解释将是伟大的.
要清楚这不是&替换中使用的(替换为整个匹配),这是\&在模式中使用的.
用法示例:
/\c\v([^aeiou]&\a){4}
Run Code Online (Sandbox Code Playgroud)
用于搜索连续4个辅音(取自vim提示).
我试图获取一个包含字符串的JSON块,\u009e我希望将这些字符转换为其关联的单个unicode字符,在本例中é.
我使用curl或wget下载json,它看起来像:
{ "name": "Kitsun\u00e9" }
Run Code Online (Sandbox Code Playgroud)
并且需要在Vim中将其翻译为:
{ "name": "Kitsuné" }
Run Code Online (Sandbox Code Playgroud)
我的第一个想法是使用Vim的iconv,但它不会将字符串作为单个字符进行评估,只返回输入.
let code = '\u00e9'
echo iconv(code, "UTF-8", "UTF-8")
" Prints \u00e9
Run Code Online (Sandbox Code Playgroud)
我想最终使用类似的东西
%s;\\u[0-9abcdef]*;\=iconv(submatch(0),"UTF-8", "UTF-8");g
Run Code Online (Sandbox Code Playgroud) 我在线寻找了很多教程,很难找到与推出有关的任何内容.
我正在实现一个IDE插件,它实现了一个自定义透视图,除了Run Last Tool按钮之外,我看不到任何Run或Debug工具栏按钮.每次启动透视图时,我都需要进入Customize Perspective,然后进入Command Group Visibility并激活Launch命令组.
我已经实现了LaunchConfigurationType,我基本上尝试添加LaunchShortcuts.
我在某处读到你需要创建一个ILaunchable适配器来使Run as ...和Debug as ...可见.这是我在plugin.xml中添加的内容,
<extension point="org.eclipse.core.runtime.adapters">
<factory adaptableType="org.eclipse.core.resources.IFile" class=" ">
<adapter type="org.eclipse.debug.ui.actions.ILaunchable">
</adapter>
</factory>
</extension>
Run Code Online (Sandbox Code Playgroud)
我尝试了很多类型的adaptableTypes : IResource, IFile自定义透视图,但没有一个使按钮显示在工具栏上.
我正在使用CMake生成我的Makefile但是我无法使用标准生成.clang_complete
make CC='~/.vim/bin/cc_args.py gcc' CXX='~/.vim/bin/cc_args.py g++' -B
Run Code Online (Sandbox Code Playgroud)
什么都没有产生......
树结构看起来像这样
Root
|
|_core
| |_src
| | |_main.cpp
| | |_CMakeLists.txt (1)
| |_inc
| |_CMakeLists.txt (2)
|
|_lib
| |_rtaudio
|
|_CMakeLists.txt (3)
Run Code Online (Sandbox Code Playgroud)
CMakeLists.txt(1)文件:
include_directories("${Dunkel_SOURCE_DIR}/core/inc")
include_directories("${Dunkel_SOURCE_DIR}/lib/")
link_directories("${Dunkel_SOURCE_DIR}/lib/rtaudio")
add_executable(Dunkel main.cpp)
target_link_libraries(Dunkel rtaudio)
Run Code Online (Sandbox Code Playgroud)
CMakeLists.txt(2)文件:
subdirs(src)
Run Code Online (Sandbox Code Playgroud)
CMakeLists.txt(3)文件:
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(Dunkel)
SUBDIRS(core)
set(CMAKE_CXX_FLAGS "-g")
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?
我想在里面制作一个带有 LinearLayout 的 ScrollView。线性布局包含 6 个具有青色、蓝色、青色、蓝色等背景的视图......这是代码:
public class TouchActivity extends Activity
{
TouchedView TouchView;
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
TouchView = new TouchedView(this);
TouchView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT , LayoutParams.WRAP_CONTENT) );
//setContentView(TouchView);
setContentView(TouchView.ViewLayout);
}
class TouchedView extends ScrollView
{
LinearLayout ViewLayout;
ListElement Elem1;
ListElement Elem2;
ListElement Elem3;
ListElement Elem4;
ListElement Elem5;
ListElement Elem6;
public TouchedView(Context context)
{
super(context);
ViewLayout = new TableLayout(TouchActivity.this);
ViewLayout.setOrientation(LinearLayout.VERTICAL);
Elem1 = new ListElement(TouchActivity.this , "CYAN");
Elem1.setLayoutParams(new TableLayout.LayoutParams(LayoutParams.MATCH_PARENT , 100 ) );
Elem2 = new ListElement(TouchActivity.this , "BLUE");
Elem2.setLayoutParams(new …Run Code Online (Sandbox Code Playgroud) java ×4
vim ×3
android ×2
regex ×2
cmake ×1
coding-style ×1
eclipse ×1
file ×1
filereader ×1
graphics ×1
iconv ×1
java-8 ×1
java-stream ×1
javabeans ×1
lambda ×1
launch ×1
menu ×1
replace ×1
scrollview ×1
stream ×1
substitution ×1
utf-8 ×1
vi ×1