小编Dan*_*Dan的帖子

获取正在运行的java文件的当前路径

我正在尝试编写一个复制文件的简单tcp客户端/服务器应用程序.我希望服务器列出客户端可以复制的文件.到目前为止我的代码是这样的:

import java.io.*;
public class GetFileList
{
    public static void main(String args[]) throws IOException{
        File file = new File(".");  
        File[] files = file.listFiles();  
        System.out.println("Current dir : " + file.getCanonicalPath());
        for (int fileInList = 0; fileInList < files.length; fileInList++)  
        {  
            System.out.println(files[fileInList].toString());  
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

Current dir : C:\Users\XXXXX\Documents\NetBeansProjects\Test
.\build
.\build.xml
.\manifest.mf
.\nbproject
.\src
.\UsersXXXXXDocumentsNetBeansProjectsTestsrcfile2.txt
Run Code Online (Sandbox Code Playgroud)

我的问题是它给了我父目录而不是当前目录.我的GetFileList.java位于C:\Users\XXXXX\Documents\NetBeansProjects\Test\src但它显示C:\Users\Alick\Documents\NetBeansProjects\Test任何人都可以帮我解决这个问题吗?

java directory

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

如何在Java中使用私有方法

我给了一个有私有方法的类,比如setCoors(int x,int y).该类的构造函数也包含setCoors.在另一个类中,我想要一个调用setCoors的方法setLocation.这可能吗?

新问题:

如果我不被允许将方法设置为公开,这可能吗?

public class Coordinate{
    public Coordinate(int a, int b){
        setCoors(a,b)
    }
    private void setCoords(int x, int y)
}

public class Location{
    private Coordinate  loc;
    public void setLocation(int a, int b)
        loc = new Coordinate(a,b)
}
Run Code Online (Sandbox Code Playgroud)

java methods private-methods

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

二叉树O(n)的InOrder树遍历的时间复杂度?

public void iterativePreorder(Node root) {
        Stack nodes = new Stack();
        nodes.push(root);

        Node currentNode;

        while (!nodes.isEmpty()) {
                currentNode = nodes.pop();
                Node right = currentNode.right();
                if (right != null) {
                        nodes.push(right);
                }
                Node left = currentNode.left();
                if (left != null) {
                        nodes.push(left);      
                }
                System.out.println("Node data: "+currentNode.data);
        }
}
Run Code Online (Sandbox Code Playgroud)

资料来源:Wiki Tree Traversal

时间复杂度是O(n)吗?如果使用递归完成时间复杂性是否相同?

新问题:如果我使用上面的代码从TreeA中找到某个节点来创建另一个树TreeB,它将拥有与TreeA一样多的节点,那么创建TreeB的复杂性将是O(n ^ 2),因为它是n个节点和每个节点会使用上面的代码,即O(n)?

java tree time-complexity

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

在python中列表中的元组中添加值

我从数据库中检索一些数据,该数据库在元组值列表中返回它,例如:[(1,),(1,),(1,),(1,),(1,),(1,) ,(1,),(1,),(1,),(1,),(1,),(1,),(1,),(1,),(1,),(1,) ,(1,),(1,)]

是否有一个函数可以总结元组列表中的值?例如,上面的样本应该返回18.

python tuples list

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

在Java中实现多个使用者多生产者的问题

我用一个阻塞队列编写了一个简单的消费者 - 生产者问题,该队列有多个生产者和多个消费者接受并将整数放在队列中.但是,当我尝试测试它时,结果并不理想,例如队列的大小不正确.我不认为消费者和生产者规模正在同步.此外,我对生产者和消费者都进行了2秒钟的睡眠,但在测试时,每两秒就打印出2个生产者和2个消费者的结果.有谁知道我做错了什么?也许我开始错误的线程?我评论了另一种方式,但结果仍然是错误的.

结果:

run:
Producing 425     Thread-0 size left 0
Consuming 890     Thread-3 size left 0
Consuming 425     Thread-2 size left 0
Producing 890     Thread-1 size left 0
Consuming 192     Thread-2 size left 0
Consuming 155     Thread-3 size left 0
Producing 155     Thread-1 size left 0
Producing 192     Thread-0 size left 0
Consuming 141     Thread-2 size left 1
Producing 141     Thread-0 size left 0
Producing 919     Thread-1 size left 0
Consuming 919     Thread-3 size left 0
Producing 361     Thread-1 …
Run Code Online (Sandbox Code Playgroud)

java multithreading producer-consumer blockingqueue

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

在Ruby on Rails中创建年份下拉框FormBuilder

我正在尝试创建一个具有年属性的数据库,但我遇到了一些困难.我创建了脚手架并尝试使用以下代码修改_form.html.erb:

<%= f.date_select :year, :start_year=>2000, :end_year=>Time.now.year %>
Run Code Online (Sandbox Code Playgroud)

试图运行rails服务器并给我这个错误:

1 error(s) on assignment of multiparameter attributes
Run Code Online (Sandbox Code Playgroud)

我意识到我只想要一年而不是一天或一个月.有没有办法做到这一点?我试过:discard_month => true但是只是隐藏它,但仍然存储它.

提前致谢

ruby-on-rails date formbuilder ruby-on-rails-3

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

创建二叉树的时间复杂度

我正在尝试从提供以下内容的源创建树:要添加到树中的2个节点,以及应添加这2个新闻节点的节点.为了找到这个节点在树中的位置,我使用了一个带有O(n)的inorder遍历.因此,如果在树中添加了n个节点,则整个树的创建将是O(n ^ 2).我的约束是它应该只用O(n)来创建树.

java tree time-complexity

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

Java Scanner hasNext()不返回false

我试图从用户连续读取输入,直到用户键入退出.我只是输入'quit'来测试它,但是console.hasNext()似乎没有返回false.事实上,似乎该程序在第7行(hasNext()行)被阻止.有任何想法吗?

    boolean bool = true;
    while (bool) {
        System.out.println("Type 'quit':");
        Scanner console = new Scanner(System.in);
        if (console.next().equals("quit")) {
            System.out.println("You typed quit");
            System.out.println("check: " + console.hasNext()); // This line doesnt print
            bool = false;
        }
    }
Run Code Online (Sandbox Code Playgroud)

java java.util.scanner

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

检查一个数组是否与java中的另一个数组相反

我试图创建一个方法,将2个int数组作为输入参数,如果数组是反向则返回true,否则返回false.这是我到目前为止所做的,但这是错误的.

public static void main(String[] args)
{
    int b,a;
    int[] data1 = {14,-70,-18,88,85,97,-65,13,-71,-12};
    int[] data2 = {-12,-71,13,-65,97,85,88,-18,-70,14};
    boolean check = true;

    for (a=0;a<data1.length;a++)
    {
      for (b=data2.length-1;b>=0;b=b-1)
      {
                  if (data1[a] != data2[b])
                      check=false 
      }
    }
    System.out.println(check);
}
Run Code Online (Sandbox Code Playgroud)

我的例子是假设打印为true但它没有.我假设2个数组的长度相同.有人可以帮忙吗?

java arrays

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

将父对象分配给Child对象而不在Java中进行强制转换

我有一个父接口和一个子接口,对象将实现.我已经创建了一个子接口,因为我希望一个特定的VehicleEntity对象说Truck要将自己添加到HashMap中Car.A Truck将调用VehicleManager的addToCar()方法,将Truck对象添加到Car的hashMap中.我遇到的问题是CarEntity ce = ve;.Netbeans告诉我施放ve给CarEntity,但我不想.代码行不应该有效(假设for循环正在查看的对象是Car对象)?我怎样才能解决这个问题?

public interface VehicleEntity {
    getId();
    getSpeed();
    move();
    }

public interface CarEntity extends VehicleEntity{
    addToCar(String c);
}

public class Car implements CarEntity{
HashMap<String, VehicleEntity> cars = new HashMap<String, VehicleEntity>();

    public void addToCar(String c) {
       cars.add(c);
    }
}

public class VehicleManager {
    HashMap<String, VehicleEntity> vehicles = new HashMap<String, VehicleEntity>();

public void reportToCar(String id) {
    for (VehicleEntity ve : ve.values()) {
        if (ve.getId().equals(id)) {
            CarEntity ce = …
Run Code Online (Sandbox Code Playgroud)

java inheritance casting

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

使用for循环在Java中打印模式

我试图在Java中使用for循环打印出这个模式,但我有点卡住了.

zzzzz   
azzzz  
aazzz  
aaazz  
aaaaz  
aaaaa  
Run Code Online (Sandbox Code Playgroud)

我可以打印:

 a  
 aa  
 aaa  
 aaaa  
 aaaaa  
Run Code Online (Sandbox Code Playgroud)

使用:

String i = " ";   
int a = 0;  
for (i="a";i.length()<=5;i=i+"a")  
    System.out.println(i);
Run Code Online (Sandbox Code Playgroud)

 zzzzz  
 zzzz  
 zzz  
 zz  
 z  
Run Code Online (Sandbox Code Playgroud)

使用:

String i = " ";   
for (i="zzzzz";i.length()>0;i=i.substring(0,i.length()-1))  
    System.out.println(i); 
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何将它们结合起来.我正在考虑i每次更换子字符串并将结束索引的值增加一个,但不确定是否编码.我从这样的事情开始:

String i = " ";  
String b = " ";  
for (i="zzzzz";i="aaaaa";i=i.replace(i.substring(0,))  
    System.out.println(i);  
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

java for-loop

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