小编use*_*119的帖子

生成除特定值之外的随机数

我想生成随机数,但不希望它们来自exclude数组.这是我的代码.

public int generateRandom(int start, int end, ArrayList<Integer> exclude) {
    Random rand = new Random();
    int range = end - start +1 - exclude.size();
    int random = rand.nextInt(range) + 1;

    for(int i = 0; i < exclude.size(); i++) {
        if(exclude.get(i) > random) {
            return random;
        }
      random++;
    }

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

我在while循环中使用此函数,并在每次迭代期间添加一个新值exclude.有时会返回属于的数字exclude.有什么问题?

java random arraylist

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

图的Hashmap表示

例如,我有一个带图形边的文本文件

1 2

1 3

2 5

等,并希望以某种方式表示我的图表.我试图使用hashmap,它是表示边缘的最佳方式吗?第二个问题,我如何访问我的hashmap中的第一个和第二个条目?我的代码在这里

    DataInputStream dStream = new DataInputStream(new FileInputStream("C:/Programming/Java/test.txt"));
    BufferedReader bReader = new BufferedReader(new InputStreamReader(dStream));

    HashMap<Integer, Integer> graphEdges = new HashMap<Integer, Integer>();
    String line;
    while( (line = bReader.readLine()) != null) {
        String[] firstSecond = line.split(" ");
        int firstDigit = Integer.parseInt(firstSecond[0]);
        int secondDigit = Integer.parseInt(firstSecond[1]);

        graphEdges.put(firstDigit, secondDigit);
    }

    System.out.println(graphEdges);

    bReader.close();
}
Run Code Online (Sandbox Code Playgroud)

java graph hashmap

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

反转有向图

我必须反转给定的有向图,以便顶点保持不变,但边是相反的方向.我的图表用Graph类表示,它包含一个顶点ArrayList,每个Vertex对象都有它的数字和它相邻顶点的ArrayList.我的代码给出了错误的答案,因为在循环的每次迭代中,顶点的相邻列表的大小都会发生变化.我该如何修复我的代码?

public void reverse() {
    ArrayList < Vertex > adjacentOfi = new ArrayList < Vertex > ();
    int k;
    for (int i = 1; i < verticesSize; i++) {
        adjacentOfi = vertices.get(i).getAdjacent();
        for (int j = 0; j < adjacentOfi.size(); j++) {
            k = adjacentOfi.get(j).getNumber();
            adjacentOfi.remove(j);
            vertices.get(k).getAdjacent().add(vertices.get(i));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是Vertex类

public class Vertex {
    private int number;
    private boolean marked;
    private int finishingTime;
    private ArrayList<Vertex> adjacent;

    public Vertex(int num) {
        this.number = num;
        this.marked = false;
        this.finishingTime = 0; …
Run Code Online (Sandbox Code Playgroud)

java graph arraylist

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

确定图形顶点的函数

我遇到java的NullPointerException问题.我的函数获取Vertex的数字并返回一个Vertex(我已经有了这样的类).这是我的代码

public class Graph {
private Set<Vertex> vertices;

public Vertex getVertexByNumber(int number) {
        Vertex answer = new Vertex(number);
        for( Vertex v : vertices ) {
            if(v.getNumber() == number) {
                answer = v;
                break;
            }
        }
        answer = null;

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

java graph nullpointerexception

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

标签 统计

java ×4

graph ×3

arraylist ×2

hashmap ×1

nullpointerexception ×1

random ×1