标签: implementation

如何在RDB中实现常规索引和复合索引?

在MySQL或Oracle等数据库中,如何实现索引?我认为常规索引存储为B树,但无法找到任何关于在多列上索引的复合索引.我正在寻找所用数据结构的名称,以便我可以研究它们.

更一般地说,在哪里可以找到有关数据库实现细节的更多此类信息?我将在大学学习这门课程,但我现在很好奇.

mysql database tree implementation data-structures

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

javac声称,当我清楚的时候,我没有覆盖抽象类实现中的方法

我会尽可能地简短而重要,但这是一个复杂的问题.我正在Linux平台上用Java编写,无论价值多少.

目标的简短版本:我想要一个名为的抽象类Client,它充当客户端连接的通用容器.Client应该对每个连接进行线程化.我也有一些半测试的代码,它以类似的编码方式与服务器相对应.摘要Client应该被实现为更有形和可实现的东西.在我的例子中,我有一个被调用的类FileClientGui,它使用从服务器接收文件内容并显示它们的基本方法来扩展Client和覆盖所有Client的抽象方法.摘要Client本身就是一个扩展,这使事情变得更加复杂java.lang.Thread.

所以这是我的通用术语文件结构:

/class/path/lib/client/Client.java

/class/path/com/fileclient/FileClientGui.java

这两个文件都引用了其他几个自定义类,但我没有收到任何错误.如果我需要发布这些项目的代码,请告诉我,我会发布它们.

所以我在终端上运行这个很长的javac命令,设置classpath和build目录以及所有需要编译的相关文件.我收到的任何代码的唯一错误是:

com/fileclient/FileClientGui.java:26: com.fileclient.FileClientGui is not abstract and does not override abstract method cleanClients() in lib.client.Client
Run Code Online (Sandbox Code Playgroud)

我的代码(见下文)清楚地实现了Client.java中定义的方法和所有其他抽象方法.我搜索了互联网,看起来大多数遇到这种错误的人都试图做一些像实现一样的东西ActionListener,并对这个实现感到困惑,而且很多时候,这只是一个简单的拼写或大写问题.我已经遍及我的代码,以确保这不是一个简单的"oops"问题.我怀疑它实际上是我的类的名称和某些其他类的名称之间的某种冲突,这些类在某种程度上最终出现在我的类路径或Java的本机框架/库中,但我找不到任何明显的东西.

无论如何,这是我的代码.

Client.java:

package lib.client;

import lib.clientservercore.Connection;
import lib.simplefileaccess.Logger;
import java.io.IOException;
import java.net.Socket;
import java.util.ArrayList;
import java.lang.Thread;

/**
 *
 * @author Ryan Jung
 */
public abstract class Client extends Thread {

    ArrayList<Connection> connections;
    boolean isRunning;
    Logger log;

    public Client (String logFile) …
Run Code Online (Sandbox Code Playgroud)

java methods implementation abstract

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

是否可以选择并行排序算法来实现作业?

我想为家庭作业实施快速算法,但是使用并行处理来完成这项任务.我听说Quicksort的并行版本是最好的选择,但我不确定这个......也许Heapsort是个好主意.您认为哪种算法是并行环境中最好的算法,为什么?

sorting algorithm parallel-processing implementation

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

Python:列表理解背后的机制

in在for循环上下文中使用list comprehension或关键字时,即:

for o in X:
    do_something_with(o)
Run Code Online (Sandbox Code Playgroud)

要么

l=[o for o in X]
Run Code Online (Sandbox Code Playgroud)
  • 背后的机制如何in运作?
  • X它调用哪些函数\方法?
  • 如果X能够遵循多种方法,那么优先级是什么?
  • 如何写出高效的X,这样列表理解会很快?

python implementation list-comprehension language-implementation

6
推荐指数
2
解决办法
2339
查看次数

API和实现之间的分离是否应该完全分开?

在大型软件实现中,通常建议在API设计与其实现之间进行分离.但在某个地方,它们必须重新连接(即,实现必须重新连接到API).

以下示例显示了API设计以及通过INSTANCE对象调用其实现:

import java.util.List;

public abstract class Separation {

    public static final Separation INSTANCE = new SeparationImpl();

    // Defining a special list
    public static interface MySpecialList<T> extends List<T> {
        void specialAdd(T item);
    }

    // Creation of a special list
    public abstract <T> MySpecialList<T> newSpecialList(Class<T> c);

    // Merging of a special list
    public abstract <T> MySpecialList<? extends T> specialMerge(
        MySpecialList<? super T> a, MySpecialList<? super T> b);

    // Implementation of separation
    public static class SeparationImpl extends Separation {

        @Override
        public <T> …
Run Code Online (Sandbox Code Playgroud)

java api implementation isolation

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

当T可以是IEnumerable <T>时,实现IEquatable <T>

我已经阅读了与我类似的各种问题,但它们似乎都没有解决我的问题.

我是这样的类型:

class MyObject<T> : IEquatable<MyObject<T>> { // no generic constraints
  private readonly string otherProp;
  private readonly T value;

  public MyObject(string otherProp, T value)
  {
    this.otherProp = otherProp;
    this.value = value;
  }

  public string OtherProp { get { return this.otherProp; } }

  public T Value { get { return this.value; } }

  // ...

  public bool Equals(MyObject<T> other)
  {
    if (other == null)
    {
       return false;
    }

    return this.OtherProp.Equals(other.OtherProp) && this.Value.Equals(other.Value);
  }
}
Run Code Online (Sandbox Code Playgroud)

什么时候T是标量,因为MyObject<int>平等正常,但是当我定义像MyObject<IEnumerable<int>>平等失败时. …

c# implementation structural-equality

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

Scala如何在表达式中实现返回?

例如,如果我们有一个类似的方法

def find[A](xs: Seq[A], p: A => Boolean): Option[A] = {
  xs.foreach(x => if (p(x)) return Some(x));
  None;
}
Run Code Online (Sandbox Code Playgroud)

(当然这里有一个库函数,这只是一个例子).foreach当内部函数returns 时,执行如何逃逸?

或者在

def foo(x: AnyRef): String =
  process(x match {
    case (s: String) => s;
    case _           => return "";
  })
Run Code Online (Sandbox Code Playgroud)

发出process时执行如何避免运行return ""

implementation scala return anonymous-function

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

git checkout如何实施?

在运行时git checkout,旧的mergebase HEAD和新的HEAD可任意远。朴素的实现是线性地应用每个差异,但操作会立即运行。

我有一个预感,可能是使用某种skiplisty来实现中间差异缓存,但这只是一个猜测。

有人知道它是如何实现的吗?谢谢!:)

git implementation

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

使用Python的P2P应用程序

我正在尝试在我的项目中实现P2P,但是由于误解了这个P2P,我遇到了一个问题.

以下是我如何实现它:

  1. 客户端打开程序,并将要连接的服务器发送到服务器,服务器将客户端添加到等待列表中.

  2. 当有超过两个人连接到服务器时,服务器会向他们发送他们应该连接的地址,并将其从列表中删除.

所以现在,问题出现了:

如何在一个文件中创建服务器和客户端?我应该创建两个线程 - 一个用于客户端,一个用于服务器?

如上所述,创建一个p2p服务器是个好主意吗?

我没有在互联网上找到任何用python编写的例子.

python implementation p2p python-2.7

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

如何在 JavaScript 中的异步函数上实现 memoize 方法?

我一直在尝试用 JavaScript 编写 memoize 函数的实现。我在一次面试中被问到这个问题,从那以后我就一直在想这个问题。我真的很感激一些帮助。

给定一个我们正在其中进行 API 调用的函数 -

function getSomeData(foo, callback) {
  var uri = 'http://localhost?foo=' + foo ;
  someAPIUri(uri, function onResponse(error, response, body) {
    callback(error, body);
  });
}
Run Code Online (Sandbox Code Playgroud)

使用 setTimeout 来实现异步功能,而不是使用 API -

function getSomeData(foo, callback) {
  setTimeout(()=> {
    console.log('async request');
    callback(2 * foo);
  }, 1000);
}
Run Code Online (Sandbox Code Playgroud)

如果我们进行如下所示的调用两次,则意味着进行了两次异步调用,因此我们需要创建一个 memoize 函数,该函数缓存某些输入的响应,并在任何后续调用中响应该响应。

getSomeData(1, (response) => {
  console.log('getSomeData', response);
})
Run Code Online (Sandbox Code Playgroud)

我写了这个函数 -

function memoize(fn) {
  const cache = {};

  return async function() {
    const args = JSON.stringify(arguments);

    console.log('arguments passed to memoize …
Run Code Online (Sandbox Code Playgroud)

javascript implementation memoization

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