小编Bax*_*Bax的帖子

面试 - 在阵列中查找幅度极点

幅度极点:数组中的元素,其左侧元素小于或等于它,右侧元素大于或等于它.

示例输入

3,1,4,5,9,7,6,11
Run Code Online (Sandbox Code Playgroud)

期望的输出

4,5,11
Run Code Online (Sandbox Code Playgroud)

我在面试中被问到这个问题,我必须返回元素的索引,并且只返回满足条件的第一个元素.

我的逻辑

  1. 取两个MultiSet(这样我们也可以考虑复制),一个用于元素的右侧,一个用于元素的左侧(极点).
  2. 从第0个元素开始,将所有元素放在"右边的集合"中.
  3. 如果第0个元素小于或等于"right set"上的所有元素,则返回其索引.
  4. 否则将其放入"左集"并从索引1处的元素开始.
  5. 遍历数组,每次从"左设置"中选择最大值,从"右设置"中选择最小值并进行比较.
  6. 在任何元素的任何时刻,其左边的所有值都在"左集"中,右边的值在"右集"中

int magnitudePole (const vector<int> &A) {  
   multiset<int> left, right;        
   int left_max, right_min;          
   int size = A.size();
   for (int i = 1; i < size; ++i)
       right.insert(A[i]);
   right_min = *(right.begin()); 
   if(A[0] <= right_min)
       return 0;
   left.insert(A[0]);
   for (int i = 1; i < size; ++i) {
       right.erase(right.find(A[i]));
       left_max = *(--left.end());
       if (right.size() > 0)
           right_min = *(right.begin());
       if (A[i] > left_max && A[i] <= right_min)
           return …
Run Code Online (Sandbox Code Playgroud)

algorithm

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

什么是弹性搜索指数?

ES术语表中未提及它们.

它们与其他ES实体(分片/节点/索引)的关系是什么?

elasticsearch

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

Sencha Windows SDK Tool 2.0.0.Maven整合

有人和maven一起使用ExtJs 4吗?至于现在,Sencha SDK工具只能用于已部署和启动的webapp(它是一个java webapp),即使在这种情况下,生成的app-all.js也不包含所有依赖项,Ext下载了很多dep.在运行时.我需要的是以某种方式在生成过程中集成生产文件生成.

extjs java-ee maven

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

如何在Talend Open Studio中记录任务进度?

我有一些将数据从一个数据库迁移到另一个数据库的示例作业,我希望获得有关当前进度的一些信息,例如从应用程序本身交互运行作业时的那些(我从命令行导出并运行它) ).我使用flowMeter和statsCatcher,但我得到的是整个时间和传递的记录总数(例如4657秒,50.000.000行).有没有解决方案来获得一个像样的日志?

talend

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

为什么Java会限制隐藏方法的访问修饰符

隐藏静态字段时,字段对子类的访问级别没有限制,它甚至可以是非静态的,也可以是其他数据类型.

另一方面,当隐藏静态方法时,从超类隐藏静态方法的子类中的静态方法可以允许比隐藏方法更多但不能更少的访问.

AFAIK,静态方法链接无论如何都是在编译时完成的,那么为什么会有这样的限制呢?

PS问题只是出于好奇.

java static method-hiding

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

Spring 4 可选&lt;List&lt;String&gt;&gt; @RequestParam

使用java.util.Optional作为spring控制器请求参数

List<String>对于简单值(int、String 等),它按预期工作,但对于类型为or的参数,String[]我为其传递多个值:

    mockMvc.perform(get("/get").param("param", "value1", "value2"))
Run Code Online (Sandbox Code Playgroud)

它总是只选择传递的值中的一个值。

@RequestMapping(value = "/get", method = RequestMethod.GET)
public Object get(@RequestParam(name = "param") Optional<String[]> array) {
    // the array will have just 1 element : 'value1'
}
Run Code Online (Sandbox Code Playgroud)

spring spring-mvc spring-test spring-web

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

如何为独立的 MockMvc 启用控制器参数验证

控制器

@RestController
@Validated
class MyController {

    @GetMapping("/foo")
    public String unwrapped(@Min(1) @RequestParam("param") int param) {
        return Integer.toString(param);
    }

    @GetMapping("/bar")
    public String wrapped(@ModelAttribute @Valid Wrapper bean) {
        return Integer.toString(bean.param);
    }

    static class Wrapper {

        @Min(1)
        int param;

        public void setParam(final int param) {
            this.param = param;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

测试

public class MyControllerTest {

    MyController controller = new MyController();
    MockMvc mockMvc = MockMvcBuilders
            .standaloneSetup(this.controller)
            .build();

    @Test // fails
    public void unwrapped() throws Exception {
        this.mockMvc.perform(get("/foo")
                .param("param", "0"))
                .andExpect(status().isBadRequest());
    }

    @Test // passes …
Run Code Online (Sandbox Code Playgroud)

testng spring-test spring-test-mvc mockmvc

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

Java join()方法

我有一个看起来很奇怪的例子.

public class Join {
    public static void main(String[] args) {
        Thread t1 = new Thread(
                new Runnable() {
                    public void run() {
                        System.out.println(Thread.currentThread().getName());
                    }
                }
        );
        Thread t2 = new Thread(t1);
        t1.setName("t1");
        t2.setName("t2");
        t1.start();
        try {t1.join();} catch (InterruptedException ie) {}
        t2.start();
    }
}
Run Code Online (Sandbox Code Playgroud)

我们只看到打印t1.如果我们将评论"t1.join",我们将得到预期的输出(t1 t2).为什么?

java multithreading

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

将包含空格的 shell 脚本参数作为 java 系统属性传递

有一个 shell 脚本,它反过来运行一个 java 程序。脚本调用如下:

./script.sh 1 2 3 4 "ab cd"
Run Code Online (Sandbox Code Playgroud)

第 5 个 shell 参数(ab cd)必须作为 java 系统属性传递,我正在做的是:

JAVA_OPTS="-Xmx512M -Dlog4j.defaultInitOverride=true"
if [ "$5" ] ; then
  JAVA_OPTS="$JAVA_OPTS -Dconfig.path=$5"
fi
Run Code Online (Sandbox Code Playgroud)

然后,运行 java(JAVA_EXE 和 CP 有正确的值):

$JAVA_EXE $JAVA_OPTS -classpath $CP com.foo.Main
Run Code Online (Sandbox Code Playgroud)

收到此错误:

Error: Could not find or load main class cd
Run Code Online (Sandbox Code Playgroud)

如果传递“abcd”而不是“ab cd”,则一切正常。

如果传递内联,只需用引号将值括起来:

java -Xmx512M -Dconfig.path="ab cd" com.foo.Main
Run Code Online (Sandbox Code Playgroud)

当必须使用变量时会出现问题。

我应该如何正确传递包含空格的参数?

java shell

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

Java 8 DateTimeFormatter无法解析自身格式化的日期

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss z");
ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(Instant.now(), ZoneId.systemDefault());
// 2016-10-10 09:28:45 PDT
String s = zonedDateTime.format(formatter);
// this call fails
ZonedDateTime.parse(s, formatter);
Run Code Online (Sandbox Code Playgroud)

给定片段有什么问题,不应该formatter.parse(date.format(formatter))评估相同date
例外:

java.time.DateTimeException:无法从TemporalAccessor获取LocalTime:{MilliOfSecond = 0,MicroOfSecond = 0,HourOfAmPm = 9,MinuteOfHour = 28,NanoOfSecond = 0,SecondOfMinute = 45},ISO,America/Los_Angeles解析为2016-10- 10的java.time.format.Parsed类型

java java-8 java-time

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

"return new A()"和"return a = new A()"之间的区别是什么?

我在许多库中看到,当返回一些结果时,使用return a = new A()(例如return entrySet = new EntrySet())而不是仅返回new EntrySet(),有什么区别?

java

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

Java中的数字到数字转换的对象.常见库中的任何方法?

我们的项目使用google guava,apache commons以及其他具有常见任务的库,我想知道这些库是否包含进行空安全转换的方法(对象编号,对象到字符串).至于现在我给自己写了一些辅助方法,例如:

int parseInteger(Object obj) {
        if (obj!= null) {
            if (obj instanceof Integer) return (Integer) obj;
            if (obj instanceof Long) return ((Long) obj).intValue();
            return Integer.parseInt(obj.toString());
        } else {
            return 0;
        }
    }
Run Code Online (Sandbox Code Playgroud)

java apache-commons guava

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

是否有Eclipse的Drools插件?

JBoss(或任何其他实体)是否为Eclipse发布了Drools插件?

eclipse eclipse-plugin drools

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