小编Cha*_*guy的帖子

动态地在Java中生成2个列表的非重复排列对

我一直在看很多关于Java中排列的不同帖子,但是没有一个符合我的账单,所以我决定发帖.

所以我有2 List<Integer>,我需要生成所有排列对,没有重复,其中该对的一个元素在第一个列表中,第二个元素在第二个列表中.

例如,如果我有:

List<Integer> l1 = Arrays.asList(new Integer[] {1, 2, 3});
List<Integer> l1 = Arrays.asList(new Integer[] {2, 3, 4});
Run Code Online (Sandbox Code Playgroud)

然后我想输出:

(1, 2), (1, 3), (1, 4), (2, 2), (2, 3), (2, 4), (3, 3), (3, 4)
Run Code Online (Sandbox Code Playgroud)

注意,(3,2)不在这里,因为我已经有(2,3)

我找不到任何库甚至远程关闭的东西,我发现guava有类似的东西,Permutations但似乎最近已经停止或其他东西.

另外,我想不必存储在内存中的列表,因为它可以是相当大的,我只需要遍历在一个对的时间,所以我试图找到方法来生成它们的飞行.我正在考虑实现一个,Iterable<Pair>但我似乎无法编写任何看起来有效的东西.

如果你知道那些已经做过这种非常有用的东西的图书馆!

java permutation

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

可以安全地使用auto_ptr交换对象而无需在多线程环境中锁定?

我在堆上分配了一些很少修改但需要快速读取访问权限的数据结构.一个例子是在堆上分配的结构,许多线程以只读方式非常频繁地访问该结构.需要定期重新编写此结构并避免锁定争用我想知道是否可以安全地使用auto_ptr基本上允许获取引用的线程继续处理直到它们完成但允许编写器复制结构,重写它并快速交换指针与结构的新auto_ptr实例.

我从CopyOnWriteArrayListJava中得到了这个想法,并希望在C++中执行类似的性能.

c++ performance multithreading copy-on-write

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

为什么没有线程等待notify()?

为什么没有线程等待notify()?线程启动然后进入等待池,但是在那之后它继续执行.

public class JavaApplication2 {
    public static void main(String [] args) {
       ThreadB b = new ThreadB();
       synchronized(b) {
           b.start();
           try {
              System.out.println("1");
              b.wait();
         } catch (InterruptedException e) {}
          System.out.println("Total is: " + b.total);
       }
     }
 }
  class ThreadB extends Thread {   
    int total;
      @Override
    public void run() {
        synchronized(this) {
            total += 1;
            //notify();
       }
    }
 }
Run Code Online (Sandbox Code Playgroud)

java concurrency notify wait

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

Apache Hive regexp_extract UDF

我在Apache Hive中遇到了一段代码,如regexp_extract(输入,'[0-9]*',0),有人可以向我解释这段代码的作用吗?谢谢

hadoop hive

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

如何在Hadoop中找到映射器和缩减器所花费的时间?

如何在Hadoop中找到每个映射器和缩减器花费的时间以及在代码(不在Web界面中)中进行洗牌(排序)的时间?所有映射器(或缩减器)的总时间如何?

java hadoop mapreduce

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

如何将参数传递给Hadoop中的主程序

每次运行我的Hadoop程序时,我都需要更改映射器和缩减器的数量.有没有办法从命令行(当我运行程序时)将映射器和缩减器的数量传递给我的程序然后用于args检索它?

java hadoop mapreduce

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

如何获取现有Hive表的SerDe属性

我的同事在蜂巢中创建了一个表,并添加了一个棘手的SerDe Regex.我想看看正则表达式是什么,但"SHOW CREATE TABLE"命令没有它.

有没有其他方法可以查看创建表的SERDEPROPERTIES?

例:

hive> CREATE TABLE foo (
  bar STRING
) 
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES ( "input.regex" = "(.*)", "output.format.string" = "%1$s" );

OK
Time taken: 0.078 seconds

hive> SHOW CREATE TABLE foo;
OK
CREATE  TABLE foo(
  bar string COMMENT 'from deserializer')
ROW FORMAT DELIMITED
STORED AS INPUTFORMAT
  'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
  'maprfs:/user/hive/warehouse/foo'
TBLPROPERTIES (
  'transient_lastDdlTime'='1383248078')
Time taken: 0.091 seconds, Fetched: 11 row(s)
Run Code Online (Sandbox Code Playgroud)

我正在使用hive 0.11.谢谢!

hadoop hive hiveql

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

Python pandas - 对字段进行分组和汇总

我最近一直在玩Panda的DataFrames,并努力分析一些多维数据.

假设我有一些数据如下:

order | sample | feature1 | feature2
-------------------------------------
1234  | A      | 0.20     | 0.45
1234  | B      | 0.71     | 0.08
1234  | C      | 0.21     | 0.02
1234  | D      | 0.87     | 0.88
5678  | A      | 0.76     | 0.42
5678  | B      | 0.01     | 0.03
5678  | C      | 0.29     | 0.91
5678  | D      | 0.70     | 0.78
Run Code Online (Sandbox Code Playgroud)

我希望输出按顺序分组的所有内容以及每个功能按样本汇总的位置:

order | feature1                  | feature2 
      | A    | B    | C    | D …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

实现完整的Python Unix风格的守护进程

我目前正在尝试手动创建一个简单的守护进程,我不想使用现有的外部库来避免开销.

当我的进程运行,它不具有PID文件已经创建(这意味着它的运行),就像在描述我目前正在检查这个职位.

我还有一个守护进程模块,用于将PID与当前进程分离并重定向stdout和stderr(因此即使我结束会话,我的守护进程也会继续运行):

import os
import sys

def daemonize(stdin="/dev/null", stdout="/dev/null", stderr="/dev/null"):
    try: 
        pid = os.fork() 
        if pid > 0:
            sys.exit(0)
    except OSError, e: 
        sys.stderr.write ("fork #1 failed: (%d) %s\n" % (e.errno, e.strerror) )
        sys.exit(1)

    os.chdir("/") 
    os.umask(0) 
    os.setsid() 

    try: 
        pid = os.fork() 
        if pid > 0:
            sys.exit(0)
    except OSError, e: 
        sys.stderr.write ("fork #2 failed: (%d) %s\n" % (e.errno, e.strerror) )
        sys.exit(1)

    stdin_par = os.path.dirname(stdin)
    stdout_par = os.path.dirname(stdout)
    stderr_par = os.path.dirname(stderr)
    if not stdin_par:
        os.path.makedirs(stdin_par)
    if not stdout_par: …
Run Code Online (Sandbox Code Playgroud)

python unix daemon

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

ArrayList <Integer> list = new ArrayList <Integer>(); 和Collection <Integer> list1 = new ArrayList <Integer>();

我不明白这些事情之间的区别:

ArrayList<Integer> list = new ArrayList<Integer>();Collection<Integer> list1 = new ArrayList<Integer>();

ArrayList扩展了实现接口的Collection类,因此Class ArrayList实现了Collection接口.也许list1允许我们从Collection界面中使用静态方法?

java

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