小编Tom*_*ann的帖子

Java 8将<V>列入Map <K,V>

我想使用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)

java lambda java-8 java-stream

892
推荐指数
16
解决办法
60万
查看次数

163
推荐指数
6
解决办法
14万
查看次数

java.io.PrintWriter和java.io.BufferedWriter之间的区别?

请查看下面的代码:

// 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?

java file stream filereader bufferedreader

90
推荐指数
4
解决办法
8万
查看次数

在VIM中添加换行后的换行符

我有一个css文件,我希望每次都添加一个空行}.

我怎么能在Vim中这样做?

regex vi vim replace substitution

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

如何在Android中显示来自互联网的图像?

如何ImageView从URL(来自互联网)在Android中显示图像?

android

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

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提示).

regex vim

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

将转义的代码点转换为unicode字符

我试图获取一个包含字符串的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)

vim utf-8 iconv

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

Eclipse插件:将Launch命令组添加到Custom Perspective

我在线寻找了很多教程,很难找到与推出有关的任何内容.

我正在实现一个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自定义透视图,但没有一个使按钮显示在工具栏上.

eclipse eclipse-plugin launch

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

.clang_complete和CMake?

我正在使用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)

我在这做错了什么?

cmake clang-complete

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

Android - 使用 LinearLayout 制作 ScrollView

我想在里面制作一个带有 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 graphics android menu scrollview

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