小编Zee*_*han的帖子

哪个更有效,排序,然后在java中的集合或线性搜索上进行二进制搜索

假设我有一个对象集合:

List<String> myList = populateMyArrayList();
//Here I am having an ArrayList with 1000 elements
Run Code Online (Sandbox Code Playgroud)

哪种方法更好:

1:Mergesort然后二进制搜索

Collections.sort(myList);
int keyIndex = Collections.binarySearch(myList, key);
Run Code Online (Sandbox Code Playgroud)

2:顺序搜索

for(String s : myList){
   if(s.equals(key)){
      return s;
   }
}
Run Code Online (Sandbox Code Playgroud)

根据要搜索的集合的大小,搜索方法是否应该有所不同?如果是,那么如何决定.

EDIT1:假设我必须多次搜索列表,并且列表中不会添加任何新元素.

编辑2:我本可以去HashSet,但我实际上有一个List<CustomObject>,我可以List根据CustomObject的不同属性多次搜索.所以equals我的CustomObject中没有重写的方法

java collections mergesort binary-search linear-search

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

使复选框始终在Bootstrap 4中可见

这是bootstrap4:Bootstrap4复选框中的新复选框:

<label class="c-input c-checkbox">
    <input type="checkbox">
    <span class="c-indicator"></span>
    Click here
 </label>
Run Code Online (Sandbox Code Playgroud)

默认情况下<input>隐藏默认复选框,仅在单击时可见.有没有办法让它始终可见.

小提琴:jsFiddle

编辑:默认情况下,这就是我想要的.

在此输入图像描述

css css3 twitter-bootstrap twitter-bootstrap-4 bootstrap-4

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

如何从 Spring RestTemplate GET 请求获取 Response Header 信息

我正在触发GET请求并JSON通过 Spring 成功获取数据RestTemplate。我也想获取Response Header信息,但不知道如何获取。

private String getAPIKeySpring() {
        RestTemplate restTemplate = new RestTemplate();
        String url = baseURL+"/users/apikey";
        Map<String, String> vars = new HashMap<String, String>();
        vars.put("X-Auth-User", apiUser);
        JsonVO jsonVO =  restTemplate.getForObject(url, JsonVO.class, vars);
        System.out.println(jsonVO);
        return null;
    }
Run Code Online (Sandbox Code Playgroud)

java spring json get resttemplate

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

无法使用JQuery更改Span文本

我正在使用bootstrap和JQuery.

HTML

<div>
    <ul>
       <li><strong> Status : </strong><span id="monitorStatusSpan">1111</span></li>
    </ul>           
</div>

<button type="button" id="disableButton"
                    class="btn btn-primary" onclick="changeSpan();">Change</button>
Run Code Online (Sandbox Code Playgroud)

JavaScript的

function changeSpan() {
 $('#monitorStatusSpan span').text('disssssssssssssssssss');   
}
Run Code Online (Sandbox Code Playgroud)

这是小提琴.http://jsfiddle.net/alamzeeshan/5bw8d2ta/7/

但是跨度文本仍然没有改变.

有谁知道我错过了什么?

html javascript jquery twitter-bootstrap

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

如何防止ArrayList被结构修改?

我正在映射一个表...说Employee到ArrayList<Employee>一个类级变量,我将在多个地方使用它,而不是每次都访问数据库.

我想把它保持为只读,即.没有人可以添加或删除ArrayList曾经填充过的元素.

有人可以建议一种方法来实现这一目标吗

编辑:修改后我想要Exception抛出一些东西.

提前致谢

java collections final arraylist

0
推荐指数
1
解决办法
133
查看次数

与CompletableFuture一起使用时,如何关闭执行程序

这里我调用三个线程,第二个和第三个线程等待第一个线程完成,然后开始并行执行.如果我使用executor.shutdown()那么只执行第一个任务.我想知道在我的所有线程执行完毕后如何关闭执行程序

public static void main(String[] args) {
        System.out.println("In main");      
        ExecutorService executor = Executors.newFixedThreadPool(3);     
        CompletableFuture<Void> thenCompose = supplyAsync(() -> doTask1(), executor)
        .thenCompose(resultOf1 -> allOf(
                runAsync(() -> doTask2(resultOf1), executor),
                runAsync(() -> doTask3(), executor)
        ));
        //executor.shutdown();      
        System.out.println("Exiting main");
    }

    private static void doTask3() {
        for(int i=0; i<5;i++) {
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.print(3);
        }

    }

    private static void doTask2(int num) {
        for(int i=0; i<5;i++) {
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            } …
Run Code Online (Sandbox Code Playgroud)

java multithreading

0
推荐指数
1
解决办法
1279
查看次数