小编And*_*rew的帖子

使用Java对数百万个int/string对进行排序

我在文本文件中有50,000,000(整数,字符串)对.整数是以毫秒为单位的时间,因此长度为13位(例如1337698339089).

文本文件中的条目如下所示:

1337698339089|blaasdasd
1337698339089|asdasdas
1337698338089|kasda
Run Code Online (Sandbox Code Playgroud)

可以有相同的条目.

我想对整数上的条目(按升序排序)进行排序,保留任何重复的整数并保留(整数,字符串)对.我采取的方法导致内存错误,所以我正在寻找替代方法.

我的方法是这样的(使用一些伪代码):

// declare TreeMap to do the sorting
TreeMap<Double, String> sorted = new TreeMap<Double, String>();

// loop through entries in text file, and put each in the treemap:
for each entry (integer, string) in the text file:

   Random rand = new Random();
   double inc = 0.0;

   while (sorted.get(integer + inc) != null) {
       inc = rand.nextDouble();
   }

   sorted.put(integer + inc, string);
Run Code Online (Sandbox Code Playgroud)

我在这里使用随机数来确保可以在树形图中输入重复的整数(通过将它们在0和1之间递增).

// to print the sorted entries:
for (Double d : sorted.KeySet()) …
Run Code Online (Sandbox Code Playgroud)

java sorting

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

仅使用平移和旋转将一组2d点与另一组对齐

我在OpenCV工作,但我认为没有这方面的功能.我可以找到一个查找仿射变换的函数,但是仿射变换包括缩放,我只想考虑旋转+平移.

想象一下,我在2D中有两组积分 - 让我们说每组都有50分.

例如,设置A = {x1,y1,x2,y2,...,x50,y50}

设置B = {x1',y1',x2',y2',...,x50',y50'}

我想找到最接近映射集A到集合B的旋转和平移组合.我想我将定义"最接近"作为最小化A中的点与BIe中的对应点之间的平均距离,最小化(x1之间的平均距离) ,y1)和(x1',y1')等

我想我可以使用蛮力测试所有可能的翻译和旋转,但这将是非常低效的.有谁知道更简单的方法?

谢谢!

math geometry opencv translation rotation

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

将Excel中的频率表扩展为单个列

我已经在Stack Overflow的其他地方读到了Excel问题在这里可以接受,所以请不要生气:)如果他们应该在其他地方,请告诉我...

我很沮丧,因为我很确定我曾经知道如何做到这一点.

想象一下下表:

Frequency       Object
3               A
2               B
4               C
Run Code Online (Sandbox Code Playgroud)

在第三列中,我希望Excel写:

A
A  
A
B
B
C
C
C
C
Run Code Online (Sandbox Code Playgroud)

(3 A因为A = 3的频率)

我很确定这可以通过在第三列中复制的单个公式来完成,但我不记得如何.有什么建议?

excel excel-2007 worksheet-function openoffice-calc

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

twitter4j - 从Streaming API访问推文信息

我的目标是收集包含"法国"和"德国"字样的所有推文,并收集相关的元数据(例如,附在推文上的地理坐标).我知道这个元数据是可用的,但我无法弄清楚如何使用我正在使用的Java库访问它:"twitter4j".

好吧,所以我到目前为止从twitter4j网站上的代码示例中获取.它打印出包含我所选关键字的所有推文,因为它们是由Twitter的Streaming API实时提供的.我在我的TwitterStream对象上调用filter方法,这提供了流.但我需要更多控制权.也就是说,我希望能够:

1)将推文写入文件; 2)只打印前1000条推文; 3)访问附加到推文的其他元数据(过滤方法只打印出用户名和推文本身).

这是我到目前为止的代码:

import twitter4j.FilterQuery;
import twitter4j.Status;
import twitter4j.StatusDeletionNotice;
import twitter4j.StatusListener;
import twitter4j.TwitterException;
import twitter4j.TwitterStream;
import twitter4j.TwitterStreamFactory;
import twitter4j.conf.ConfigurationBuilder;

public class Stream {
    public static void main(String[] args) throws TwitterException {

    ConfigurationBuilder cb = new ConfigurationBuilder();
    cb.setDebugEnabled(true);
    cb.setOAuthConsumerKey("bbb");
    cb.setOAuthConsumerSecret("bbb");
    cb.setOAuthAccessToken("bbb");
    cb.setOAuthAccessTokenSecret("bbb");

    TwitterStream twitterStream = new TwitterStreamFactory(cb.build()).getInstance();
    StatusListener listener = new StatusListener() {

        public void onStatus(Status status) {
            System.out.println("@" + status.getUser().getScreenName() + " - " + status.getText());
        }

        public void onDeletionNotice(StatusDeletionNotice statusDeletionNotice) {
            System.out.println("Got a status deletion …
Run Code Online (Sandbox Code Playgroud)

twitter twitter4j

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

浮点数在C++中被舍入,我不明白为什么

我对此非常困惑......这是我的代码摘录..

float m = 0.0, c = 0.0;
printf("toprightx = %d bottomrightx = %d toprighty = %d bottomrighty = %d\n",
    toprightx, bottomrightx, toprighty, bottomrighty);
// find m and c for symmetry line
if (toprightx == bottomrightx) {
  m = (-toprighty + bottomrighty);
}
else {
  m = (-toprighty + bottomrighty) / (toprightx - bottomrightx);
}

c = -toprighty - (m * toprightx);

printf("m = %f and c = %f\n", m, c);
Run Code Online (Sandbox Code Playgroud)

这是输出:

toprightx = 241 bottomrightx = 279 toprighty = …
Run Code Online (Sandbox Code Playgroud)

c++ floating-point types integer

4
推荐指数
3
解决办法
1375
查看次数

Java文本文件大小(文件关闭之前)

我从一项服务中收集完整的HTML,该服务提供对大量博客和新闻网站的访问.我正在检查HTML(实时),看它是否包含一些关键字.如果它包含其中一个关键字,我将HTML写入文本文件以存储它.

我想这样做一个星期.因此我收集了大量数据.测试程序3分钟产生100MB的文本文件.我有4 TB的空间,我不能使用超过这个.

此外,我不希望文本文件变得太大,因为我认为它们将变得不可打开.

我建议的是打开一个文本文件,并向其中写入HTML,经常检查它的大小.如果它变大,比方说200MB,我关闭文本文件并打开另一个.我还需要保存一个运行日志,记录我总共使用了多少空间,以便确保我不接近4 TB.

我现在的问题是如何在文件关闭之前检查文本文件的大小(使用FileWriter.close()).是否有这样的功能,还是应该计算写入文件的字符数并使用它来估算文件大小?

一个单独的问题:有没有办法减少文本文件占用的空间量?我在Java工作.

java file filewriter file-writing

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

Chrome和Firefox处理缩放方式不同.如何在我的CSS中处理这个问题

我正在构建一个标题和菜单中的网页.当我缩小或放大时,一些菜单项会跳到第二行,当它们要保持在一行上时.这种情况发生在Chrome中,但在Firefox中不会发生.

为了说明这一点,我拍了一段我的代码.以下HTML和CSS创建一个蓝色框,其中包含8个菜单项.当我在Firefox中放大或缩小时,无论我应用多少缩放,一行上总共有8个菜单项.但是,如果我在Chrome中多次缩小,有时最后一个菜单项会跳转到第二行.菜单项行相对于菜单框的宽度改变宽度(而在Firefox中,宽度的比例保持不变).

我认为理解我正在谈论的内容的最佳方式是在Chrome和Firefox中查看以下代码,并在两者中放大和缩小几次以查看会发生什么.

我希望Firefox中发生的事情能够在Chrome中复制.任何人都可以建议我如何实现这一目标?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Run Code Online (Sandbox Code Playgroud)

<head>
  <style>
  #header {
  width: 1000px;
  margin: 0 auto;
  height: 96px;
  position: relative;
  background: blue;
  } 
  #menu {
  display: block;
  position: absolute;
  left: 119px;
  }
  #menu li {
  display: block;
  float: left;
  padding: 0 8px 0 14px;
  text-transform: uppercase;
  letter-spacing: -1px;
  font: 14px/27px Arial, Helvetica, sans-serif;
  background-color: transparent;
  }
  </style>
</head>

<body>
  <div id="header">
    <div id="menu">
      <ul>
      <li>menu item 1</li>
      <li>menu item 2</li>
      <li>menu item 3</li>
      <li>menu item …
Run Code Online (Sandbox Code Playgroud)

html css firefox google-chrome

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

将Solr结果与MySQL数据相结合的最有效方法

在我们的新网站(购物网站)上,我们将使用Solr作为我们网站的搜索引擎.在Solr索引中,我们保留了产品ID的列表,以及每个产品的关键字列表.搜索查询是针对关键字完成的.

Solr返回产品ID列表.然后将这些id插入到MySQL查询中,以从数据库中选择所有产品数据.MySQL还处理结果的排序.例如,MySQL查询可能如下所示:

SELECT * FROM product WHERE id IN (1,4,42,32,46,...,39482) ORDER BY price ASC
Run Code Online (Sandbox Code Playgroud)

我们在网站上有大约100,000种产品.当有数千个结果时,此方法可以正常工作,但当有 - 例如 - 50,000个结果时,此方法会变慢.

我的假设是瓶颈是"WHERE IN"条款.长期解决方案是将所有产品数据移至Solr,以便它可以处理对结果进行排序,并将精细过滤器应用于搜索(例如,用户可能只想查看特定价格范围内的产品).但是,我们对Solr缺乏经验,需要进行短期修复才能实现.

一种选择是在短期内放弃Solr并将关键字存储在MySQL的表中,并使用FULL-TEXT搜索对其进行搜索.

我错过了其他选择吗?

mysql solr

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

得到中午PHP的时间戳

假设我有一个时间戳,X.

使用PHP,我怎样才能找到代表X来自中午的时间戳?

我想我需要将X转换为日期,提取日期,然后将当天中午转换为时间戳.有没有一种简单的方法在PHP中执行此操作?

php

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

有一个Java类,其中一个字段是一个方法?

我对Java很新,因为我的帖子的性质会放弃

我需要创建一个包含一组方法的类,如果需要,可以由程序员轻松扩展.我想过有两节课:CommandsCommand.Commands包含一个Command对象数组,是程序员可以添加新命令的地方.该Command课程有两个字段.类的名称和方法签名.我不确定如何做到这一点.在C中,我认为你可以有一个函数结构,那么我们可以有一个类,其中类的实例是方法吗?还是我完全走错了路?

我想过尝试做这样的事情:

public class Commands
{
    private ArrayList<Command> commands;

    /**
     * Constructor for objects of class Command
     */
    public Commands()
    {
        createCommands();
    }

    /**
     * This is where a programmer can add new commands
     */
    public void createCommands()
    {
        commands.add(new Command("move", public void move()));
    }

    /**
     * This is where the programmer can define the move command
     */
    public void move()
    {
        ....
    }
}

public class Command
{ …
Run Code Online (Sandbox Code Playgroud)

java methods field class object

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

用于搜索字符串三元组的最有效的Java数据结构

假设我有一个大型列表(大约10,000个条目)的字符串三元组:

car    noun    yes
dog    noun    no
effect noun    yes
effect verb    no
Run Code Online (Sandbox Code Playgroud)

假设我出现了一个双字符串 - 例如,(效果,动词) - 我需要快速查看列表以查看该对是否出现,如果出现,则其值是"是"还是"否".(对于此示例,双重确实出现,值为"no".)

Java中存储列表的最佳数据结构是什么,以及执行搜索的最有效方法是什么?我正在运行成千上万的搜索,因此速度至关重要.

谢谢!

java search

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

strncpy问题(C语言)

我对strncpy有困难.我试图将一个包含8个字符的字符串分成两个字符串(一个子字符串中的前6个字符,然后是另一个字符串中的剩余2个字符).为了说明特殊的困难,我将代码简化为以下内容:

include stdio.h
include stdlib.h
include string.h

define MAXSIZE 100

struct word {  
   char string[8];  
   char sub1[2];  
   char sub2[6];  
};

typedef struct word Word;

int main(void)  
{  
   Word* p;  
   p=(Word*)malloc(MAXSIZE*sizeof(Word));  
   if (p==NULL) {  
      fprintf(stderr,"not enough memory");  
      return 0;  
   }  
   printf("Enter an 8-character string: \n");  
   scanf("%s",p->string);  

   strncpy(p->sub2,p->string,6);  
   strncpy(p->sub1,p->string,2);  
   printf("string=%s\n",p->string);  
   printf("sub1=%s\n",p->sub1);  
   printf("sub2=%s\n",p->sub2);  

   free(p);  

   return 0;  
}
Run Code Online (Sandbox Code Playgroud)

提示用户输入.假设他们输入"12345678".那么程序的输出是:

string=1234567812123456  
sub1=12123456  
sub2=123456
Run Code Online (Sandbox Code Playgroud)

我期待的输出如下:

string=12345678  
sub1=12  
sub2=123456
Run Code Online (Sandbox Code Playgroud)

我不明白strncpy似乎是如何将数字附加到字符串上...显然我不太了解strncpy,但有人可以向我解释发生了什么吗?

c string strncpy

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