小编Dan*_*her的帖子

使用nio.file.DirectoryStream以递归方式列出目录中的所有文件;

我想列出指定目录中的所有FILES和该目录中的子目录.不应列出任何目录.

我目前的代码如下.它无法正常工作,因为它只列出指定目录中的文件和目录.

我怎样才能解决这个问题?

final List<Path> files = new ArrayList<>();

Path path = Paths.get("C:\\Users\\Danny\\Documents\\workspace\\Test\\bin\\SomeFiles");
try
{
  DirectoryStream<Path> stream;
  stream = Files.newDirectoryStream(path);
  for (Path entry : stream)
  {
    files.add(entry);
  }
  stream.close();
}
catch (IOException e)
{
  e.printStackTrace();
}

for (Path entry: files)
{
  System.out.println(entry.toString());
}
Run Code Online (Sandbox Code Playgroud)

问候.

java nio file directorystream

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

什么是Java中的参数多态(带示例)?

据我所知,参数多态是一种允许对各种数据(类型)进行统一操作的技术.我的知识是否正确?

这个例子是参数多态吗?我相信这是因为Animal.talk允许在不使用特定动物类型(猫或狗)的情况下调用谈话.

public interface Animal
{
  public String talk();
}

public class Cat implements Animal
{
  public String talk()
  {
    return "Cat says Meow!";
  }
}

public class Dog implements Animal
{
  public String talk()
  {
    return "Dog says Woof! Woof!";
  }
}

import java.util.*;

public class PolymorphismExample
{
  public static void main(String[] args)
  {
    Collection<Animal> animals = new ArrayList<Animal>();
    animals.add(new Cat());
    animals.add(new Dog());
    for (Animal a : animals)
    {
      System.out.println(a.talk());
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

问候.

编辑:如果我的例子没有具体展示参数多态性,请你提供一个?谢谢.

java polymorphism

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

在java中连接两个大(超过1.5GB)文件的最有效(最快)方法是什么?

我已经在这里使用了这些技术,并在70秒内连接了两个1.5GB文件.

http://nadeausoftware.com/articles/2008/02/java_tip_how_read_files_quickly

我的代码涉及使用带有内存映射的FileChannel和带有8KB缓冲区大小的ByteBuffers.

我怎么能提高这个速度?

File file = new File(binDirectory + "/donjon.avi");
File oFile = new File(binDirectory + "/donjon2.avi");

FileInputStream is = new FileInputStream(file);
FileOutputStream fos = new FileOutputStream(oFile);
FileChannel f1 = is.getChannel();
FileChannel f2 = fos.getChannel();

f2.transferFrom(f1, 0, f1.size());
f2.transferFrom(f1, f1.size(), f1.size());

f2.close();
f1.close();
Run Code Online (Sandbox Code Playgroud)

java io nio file

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

和=有什么区别?

我已将这些陈述输入prolog解释器,并对结果感到困惑.他们不应该回归同样的事情; 真正?

1 ?- 7 = 5 + 2.
false.

2 ?- 7 is 5 + 2.
true.
Run Code Online (Sandbox Code Playgroud)

prolog

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

如果保证相互排斥,比如使用信号量,那么程序是否会无死锁?

我分别如下定义互斥和死锁:如果每个时刻,每个共享资源被分配给一个进程或者可用,则存在互斥条件.如果集合中的每个进程都在等待集合中只有另一个进程可能导致的事件,则一组进程将死锁.

比如,使用二进制信号量,确保其中只有一个可以同时进入其关键区域.由于每个流程在进入其关键区域之前都会向下运行,而在离开之后向上运行,因此可以保证互斥.

我知道有四个条件必须都能解决死锁,其中一个是互斥条件(在它们的关键部分中没有两个进程可以同时进行).

由于相互排斥得到保证,在这种情况下,程序是否无死锁?

问候.

multithreading deadlock semaphore mutual-exclusion

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

使用继承,为什么goPee()没有在我的测试类中定义?

我正在尝试使用继承,以便我可以正确执行测试类中包含的代码.我不确定如何实现一个名为Bathroom的抽象类或接口,其中包含goPee()方法.你知道如何编码吗?

如果我添加一个抽象类或一个接口,并分别通过extends或implements将它们添加到Human类,我总是被要求在gopee()方法的Human类中编写实现,我不想这样做,我的goPee()方法实现是在男性和女性子类中编写的.

import java.util.ArrayList;

class Human
{
  private String name;
  public Human (String name)
  {
    this.name = name;
  }
  public String getName()
  {
    return name;
  }
  public void eat()
  {
    System.out.println(name + " went to fridge.");
  }
}

class Male extends Human
{
  public Male(String name)
  {
    super(name);
  }
  public void goPee()
  {
    System.out.println(getName() + " stood up.");
  }
}

class Female extends Human
{
  public Female(String name)
  {
    super(name);
  }
  public void goPee()
  {
    System.out.println(getName() + " sat down."); …
Run Code Online (Sandbox Code Playgroud)

java inheritance

4
推荐指数
2
解决办法
253
查看次数

ArrayList <Byte> vs Java中的String

我正在实现LZW算法.我已经成功地为字符串和文本文件实现了它,并且我正在修改我的代码以使用二进制文件,例如图像或可执行文件(因为我无法将这些文件作为字符串读取).

我已经用String类型替换了我的代码中的ArrayList<Byte>类型.我的代码现在正确压缩和解压缩二进制文件,但它至少慢了10倍!在速度是关键因素的压缩应用中,这是不可接受的.

我是否正确替换ArrayList<Byte>String.有类似功能的更快的替代方案吗?注意,LZW算法需要数组大小调整,因此标准arrays[]不适合.

问候.

java string arraylist lzw

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

如何在 SQL Server 中引发自定义异常

我有一个存储过程spMyProc。该过程被传递一个表名作为参数@TableName。在进入过程主体之前验证该表是否存在很重要。

如果表名无效,如何创建自定义异常以引发错误?

我知道的TRYCATCH,但我不能确定如何把这个加上自定义异常。

问候。

t-sql sql-server exception sql-server-2008

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

如何手动计算FIRST集

我不明白我的导师提供的一个例子.

S ::= aBA | BB | Bc
A ::= Ad | d
B ::= ?
Run Code Online (Sandbox Code Playgroud)

我们有

FIRST(B) = FIRST(?)
         = {?}

FIRST(A) = FIRST(Ad) ? FIRST(d)
         = FIRST(A) ? {d}
         = {d}

FIRST(S) = FIRST(aBA) ? FIRST(BB) ? FIRST(Bc)
         = FIRST(a) ? (FIRST(B)\{?}) ? FIRST(B) ? (FIRST(B)\{?) ? FIRST(c)
         = {a, ?, c}
Run Code Online (Sandbox Code Playgroud)

为什么在FIRST(S)计算中存在FIRST(B)?不应该

(FIRST(B)\{?)?
Run Code Online (Sandbox Code Playgroud)

为什么FIRST(S)计算中缺少A?

compiler-construction grammar parsing

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

Java中的参数多态与简单的例子

我已经进一步研究了这个主题,并且我意识到,对于一个纯粹详细的参数多态性的例子,它不能使用"implements"(它会详细说明子类型多态性),而应该使用泛型.

这是我之前的问题: Java中的参数多态(什么是示例)?

这是将泛型用于单个问题的重写代码.

class Pet<T>
{
  private T pet;

  public Pet(T pet)
  {
    this.pet = pet;
  }

  public String talks()
  {
    // what do i write here?
    // pet.talks(); is undefined for type T
  }
}

class Cat
{
  public String talks()
  {
    return "Meow";
  }
}

class Dog
{
  public String talks()
  {
    return "Woof";
  }
}

public class TestPet
{

  public static void main(String[] args)
  {
    Pet<Cat> cat = new Pet<Cat>(new Cat());
    System.out.println("Cat says " + cat.talks()); …
Run Code Online (Sandbox Code Playgroud)

java generics polymorphism

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

Java - Byte对象的Pass by Reference

我在这里读了一些代码: Java是"通过引用传递"还是"传递值"?

public void foo(Dog d)
{
  d.getName().equals("Max"); // true
  d.setName("Fifi");
}

Dog aDog = new Dog("Max");
foo(aDog);
aDog.getName().equals("Fifi"); // true
Run Code Online (Sandbox Code Playgroud)

我可以对Byte对象执行相同的操作.我在我的代码中的这一点,并想知道如何"设置"字节对象的值?

如果我使用=赋值运算符,它似乎执行new Byte()自动装箱?!因此价值不会被传回.

有任何想法吗?问候.

java autoboxing byte pass-by-reference

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

如何将组标识符组合成单个组?

我有一个数据集如下:

;WITH CTE AS
( SELECT *
  FROM (VALUES
(1, 10, 20, 30)
(2, 10, 21, 31)
(3, 11, 21, 31)
(4, 12, 22, 32)
(5, 13, 23, 33)
(6, 14, 24, 33)
(7, 14, 25, 34)
(8, 15, 26, 36)
) AS MyValues(ID, GroupID1, GroupID2, GroupID3)
)
SELECT *
FROM CTE
Run Code Online (Sandbox Code Playgroud)

如何生成以下内容,将各个组折叠成一个组?

ID 单组ID
1 1
2 1
3 1
4 2
5 3
6 3
7 3
8 4

sql sql-server graph-theory recursive-query

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

单个应用程序中的多个MDI父表单

VCL本身不允许MainForm以外的其他表单托管MDI子表单。这是Borland的硬编码限制,不是Microsoft MDI体系结构的限制。Microsoft允许应用程序中的多个窗口托管MDI子级。Win32 API中没有MainForms的概念。

我尝试将下面的embarcadro c ++示例转换为embarcadro delphi,但未成功。创建mdi子表单时,我始终遇到错误“当前没有任何mdi表单处于活动状态”。

此c ++示例演示了如何允许一个非MDI项目承载多个MDI父窗体,这些窗体都不是VCL的MainForm。

随信息一起下载(需要下载帐户) http://cc.embarcadero.com/item/23574

直接下载(无需下载帐户) http://www.delphibasics.info/MultipleMDIParentFormsInASingleApplication.zip

如果有人将这个示例从embarcadro c ++语言转换为embarcadro delphi语言,将不胜感激。谢谢。

delphi mdi vcl

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