小编Kir*_*nov的帖子

如何使用纯javascript在屏幕上平滑地拖动图像

我正在尝试使用JavaScript在屏幕上拖动图像.我已经编写了一个脚本,可以在带有文本的div上正常工作,但是当我在图像上使用它时,它会间歇性地工作.

我已将代码放在jsfiddle上,以便其他人可以看到我的意思. http://jsfiddle.net/laurence/YNMEX/

如果你运行它,你会发现文本块可以被拖放,但是当你对图像尝试相同的东西时,它会留下图像.这就像图像无法跟上鼠标的运动.

我在jsfiddle上重复了以下代码:

function startDrag(e) {
  // determine event object
  if (!e) {
    var e = window.event;
  }

  // IE uses srcElement, others use target
  var targ = e.target ? e.target : e.srcElement;

  if (targ.className != 'dragme') {
    return
  };
  // calculate event X, Y coordinates
  offsetX = e.clientX;
  offsetY = e.clientY;

  // assign default values for top and left properties
  if (!targ.style.left) {
    targ.style.left = '0px'
  };
  if (!targ.style.top) {
    targ.style.top = '0px'
  };

  // calculate integer …
Run Code Online (Sandbox Code Playgroud)

javascript

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

java:String Arrays列表并删除

在这样的测试中:

    @Test
    public void test() {
        List<String[]> l = new LinkedList<String[]>();
        l.add(new String [] {"test", "123"});
        l.add(new String [] {"test", "456"});
        l.add(new String [] {"test", "789"});

        assertEquals(3, l.size());

        l.remove(new String [] {"test", "456"});

        assertEquals(2, l.size());
    }
Run Code Online (Sandbox Code Playgroud)

作为第二断言(= 2)不equals/hashcode使用在list.removedefault为对象.有没有办法让列表能够Arrays.equals/Arrays.hashcode用于比较数组?或者唯一的解决方案是将String数组包装在一个对象中并覆盖equals/hashcode

java junit list

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

用apache lucene进行词形还原

我正在使用apache lucene开发一个文本分析项目.我需要对一些文本进行引理(将单词转换为规范形式).我已经编写了代码来制作词干.使用它,我能够转换下面的句子

词干是这个词的一部分,即使在形态上变化时也不会改变; 引理是这个词的基本形式.例如,从"产生",引理是"产生",但干是"产生 - ".这是因为有生产这样的词

即使形态学变形引理基础形式单词例子来自产品引理产品干产品因为字产品

不过,我需要的话基本形式:例如,而不是为例,产生的替代produc,等等.

我正在使用lucene,因为它有多种语言的分析器(我至少需要英语和俄语).我知道斯坦福NLP图书馆,但它没有俄语支持.

那么有没有办法对几种语言进行词形还原,就像我使用lucene一样?

我的代码的简化版本负责阻止:

//Using apache tika to identify the language
LanguageIdentifier identifier = new LanguageIdentifier(text);
//getting analyzer according to the language (eg, EnglishAnalyzer for 'en')
Analyzer analyzer = getAnalyzer(identifier.getLanguage());
TokenStream stream = analyzer.tokenStream("field", text);
stream.reset();
while (stream.incrementToken()) {
    String stem = stream.getAttribute(CharTermAttribute.class).toString();
    // doing something with the stem
    System.out.print(stem+ " ");
}
stream.end();
stream.close();
Run Code Online (Sandbox Code Playgroud)

更新:我发现这个几乎可以满足我的需求(英语和俄语)并使用apache lucene(尽管以自己的方式),它绝对值得探索.

java lucene nlp stemming lemmatization

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

使用数组A的元素填充一个新数组,这些元素缺少数组B - Java

所以,基本上我有两个数组:

int[] listA = {2, -5, -121, 102, -35, -2, 0, -125, 802, -10};
int[] listB = {6, 99, -1, 12, 1, -2};
Run Code Online (Sandbox Code Playgroud)

我想填写一个新的数组(listD)所有listA缺少的元素listB.

输出应该是这样的:

输出:2,-5,-121,102,-35,0,-125,802,-10

我的代码如下:

int arraySize = 0; //Variable to determine size of the new array;
int difElements = 0; //Variable to count every different element;

for(int i = 0; i < listA.length; i++){
    for(int j = 0; j < listB.length; j++){
        if(listA[i] != listB[j]){
            difElements++;
        }
        if(difElements == listB.length){
        arraySize++; …
Run Code Online (Sandbox Code Playgroud)

java arrays

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

如何将List <Object>转换为逗号分隔的String

Address从DB调用中获取对象列表.

ArrayList<Address> addresses = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)

每个人Address都有一个int addressId属性.

我正在写一个更新查询,在IN条款中我发送这整个Address对象列表,我得到了ibatis TypeException.如何转换List<Address>为逗号分隔的字符串,可以发送更新查询?

我的更新查询看起来像:::

Update tablename set postcode = #{postCode} where id in #{addressID}.
Run Code Online (Sandbox Code Playgroud)

java

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

迭代循环并基于条件检查设置新值 - java

我想创建一个条件,如果产品具有相同的模型,我想设置newID's(A,B,C).下表是我在调用List<MyDTO>when getAllListValue()方法时返回的示例数据.

样本数据:

pID    prodName  Model    Year 
10       PN1      ABX      1999
11       PN2      ABX      1999
12       PN3      ABX      2000
13       PN4      XP       2002
14       PN5      xP       2003
15       PN6      HP       2006
16       PN7      LX       2008
17       PN8      LX       2009
Run Code Online (Sandbox Code Playgroud)
  • 对于PN1和模型ABX我想设置newID为A.
  • 对于PN2和模型ABX我想设置newID为B.
  • 对于PN3和模型ABX我想设置newID为C.
  • 为- PN4XP- 设为newIDA
  • 为- PN5XP- 设为newID …

java collections foreach

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

Spring mongo 只写字段

我有一个描述 mongo 文档的抽象类。此类可能有不同的实现需要覆盖抽象方法。这是一个简化的示例:

@Document
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS)
public abstract class Entity {

    @Id
    private ObjectId id;

    abstract String getSomething();
}
Run Code Online (Sandbox Code Playgroud)

我想getSomething()作为字符串字段写入文档。但我不想读回来

我尝试使用@AccessType注释:

@AccessType(AccessType.Type.PROPERTY)
abstract String getSomething();
Run Code Online (Sandbox Code Playgroud)

但是当我从数据库中读取此文档时, spring 抛出UnsupportedOperationException: No accessor to set property. 它正在尝试为该字段找到一个 setter,但我不想为它定义一个 setter - 该方法可能会返回一个计算值,并且应该无法更改它。虽然空的 setter 可能会有所帮助,但它看起来更像是一种解决方法,我会尽量避免它。

所以我想知道从数据库读取时是否有办法跳过这个特定的属性?与@Transient注释相反的东西。或类似于@JsonIgnore杰克逊图书馆。

java spring mongodb spring-data spring-data-mongodb

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

从商店的多个切片获取 NGRX 数据的最佳方法是什么

是否有从 NGRX 存储的多个切片获取数据的最佳实践?我正在使用 NGRX 实体,我有一个用于公司、用户、供应商和订单的切片,在特定组件中,我需要访问所有 4 个组件。我尝试了几种不同的方法,但它们看起来都很麻烦。

我应该使用来自多个实体的 4 个单独的选择器,还是最好在根级别创建一个选择器并包含详细信息页面所需的所有内容?

目前,我正在使用combineLatest运算符

this.subscription.add(this.store.select(fromUser.getUsers).pipe(
    combineLatest([
        this.store.select(fromCompanies.selectAll),
        this.store.select(fromVendors.selectAll),
        this.store.select(fromOrders.getOrders),
    ]))
Run Code Online (Sandbox Code Playgroud)

rxjs ngrx angular

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

Java 奇怪的类强制转换异常

谁能帮助我理解为什么在 1 种情况下我没有 ClassCastException?至少 String::trim 不是 MagicFunction。

public class Main {

    @FunctionalInterface
    interface MagicFunction extends Function<String, String> {
    }

    public static void main(String[] args) throws IOException {
        // 1. OK
        final MagicFunction fun1 = String::trim;

        // 2. java.lang.ClassCastException
        Function<String, String> trim = String::trim;
        final MagicFunction fun2 = (MagicFunction) trim;
    }
}
Run Code Online (Sandbox Code Playgroud)

java functional-programming interface classcastexception

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

如何在java 8中使用CompletableFuture启动异步任务并让主线程完成并退出

我有以下代码(或多或少):

ExecutorService executor = Executors.newFixedThreadPool(10);
CompletableFuture
    .supplyAsync(()->{
        return longRunningMethodThatReturnsBoolean();
    }, executor)
    .thenAcceptAsync(taskResult -> {
        logResult();
        executor.shutdown(); 
    }, executor);
Run Code Online (Sandbox Code Playgroud)

这允许主线程中的代码继续,但是我希望主线程在完成时死亡,并且未来继续在它自己的线程中工作,但是主线程保持活动状态直到 CompletableFuture 完成,即使主线程没有不再做任何事情。

我对这个有点陌生,我错过了什么吗?甚至有可能吗?

任何帮助将不胜感激!!!

java multithreading completable-future

3
推荐指数
2
解决办法
2365
查看次数

如何找到排序数组所需的最大组数?

假设我有一个数组:

[1, 8, 5, 6, 10, 9, 11, 12];
Run Code Online (Sandbox Code Playgroud)

我想按升序对它进行排序,但要找出我需要排序的最大组数。在此示例中,答案将是:

[1], [8,5,6], [10,9], [11], [12]: so 5
Run Code Online (Sandbox Code Playgroud)

[3,2,1]会变成1,因为整个数组都需要排序。

我完全不知道如何做到这一点,朝着正确的方向发展。

java arrays sorting algorithm grouping

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

如何在js中删除数组的最后一个元素

我有一个二维数组,其中最后一个元素是空的.像这样:

data = [["1","2","3","","",""],["4","5","6","x","f",""],["7","8","9","",""]]
Run Code Online (Sandbox Code Playgroud)

现在我想删除空元素并使用.length获取正确的新大小

我试着像这样但它不起作用:

        for (i = 0; i != data[2].length-1; i++) {
            if (data[2][i].isEmpty()) {
                data[2] = data[2].splice(i, 1);
            }
        }
Run Code Online (Sandbox Code Playgroud)

有什么好的解决方案吗?

javascript arrays

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

使用angular 2 + Typescript时,如何限制RxJs中的mousemove事件?

我正在学习RxJ。我使用Angular2 rc3。以下流有效,但是它给了我太多的mousemove事件。我想使用时间(节流)或其他控制流来减慢它们的速度。我怎样才能做到这一点?

鼠标移动流而无节流

const mouseMove$ = Observable.fromEvent<MouseEvent>(document, 'mousemove');

mouseMove$.subscribe( x => console.log(x)); // works great, many {mouse position object} 's
Run Code Online (Sandbox Code Playgroud)

简单的解决方案:使用节流应该是这样的:

const mouseMove$ = Observable.fromEvent<MouseEvent>(document, 'mousemove');
const latestMouseEventEvery1Second$ = mouseMove$.sample(1000);

latestMouseEventEvery1Second$.subscribe( x => console.log(x)); // error
Run Code Online (Sandbox Code Playgroud)

- 我在这里采用了这个sample()运算符的形式:http//reactivex.io/documentation/operators/sample.html

但这在角度2-CLI项目中不起作用。给我这个错误:

***Argument of type 'number' is not assignable to parameter of type 'Observable<\any>'*** - notice i've put <\MouseEvent> when casting.
Run Code Online (Sandbox Code Playgroud)

我认为,实现相同结果的另一种更强大的方法可能是顺其自然: 如果我们可以mousemove item 根据从另一流接收到的项目发送最新消息,那将是很好的。任何流-由我们创建。

例如:

当我们从eachSecond$Stream(=我们的“控制流”)接收到一个新项目(1、2,3 ..)时,-我们发出donwstream(进入mouseMoveEachSecond$)-从mouseMove$stream中接收到的最新项目。 …

stream rxjs typescript angular

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