从 SQLite 获取 ArrayList<String>

您的代码具有O(n)时间复杂度,我认为这对于这个问题来说是最快的。但是您没有利用StringBuilder,而是使用耗时的字符串连接。


这是优化后的版本:


public static void main(String[] args) throws IOException {

    BufferedReader bi = new BufferedReader(new InputStreamReader(System.in));

    String line = bi.readLine();

    String[] input = line.split(" ");

    StringBuilder builder = new StringBuilder();

    Stack<String> stack = new Stack<String>();


    for(String e:input) {

        switch(e) {

            case("+"):

            case("-"):

            case("*"):

            case("/"):

                String i = stack.pop();

                String k = stack.pop();

                builder.setLength(0);

                builder.append("(");

                builder.append(k).append(e).append(i);

                builder.append(")");

                stack.push(builder.toString());

                break;

            default:

                stack.push(e);

        }

    }

    System.out.println(stack.pop());  

}


www说
浏览 174回答 1
1回答

明月笑刀无情

你需要做这样的事情:Cursor cursor = db.rawQuery(...);try {&nbsp; &nbsp; while (cursor.moveToNext()) {&nbsp; &nbsp; &nbsp; &nbsp; //Here you have to add the item in your array list&nbsp; &nbsp; }} finally {&nbsp; &nbsp; cursor.close();}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java