小编Joh*_*tsy的帖子

通用对类

只是尝试这个问题,我在过去的考试试卷中发现,这样我就可以为即将进行的Java考试做准备.

提供用于表示事物对的通用类Pair.该类应该提供一个构造函数,一个获取该对的第一个成员的方法,一个获取该对的第二个成员的方法,一个用于设置该对的第一个成员的方法,一个用于设置该对的第二个成员的方法.该类应该针对第一个成员的两个类型进行参数化,并且对于该对的第二个成员进行参数化.

这是这个问题的正确实现吗?

public class Pair<firstThing, secondThing>{
   private firstThing first;//first member of pair
   private secondThing second;//second member of pair

   public Pair(firstThing first, secondThing second){
     this.first = first;
     this.second = second;
   }

   public void setFirst(firstThing first){
    this.first = first;
   }

   public void setSecond(secondThing second) {
     this.second = second;
   }

   public thing getFirst() {
     return this.first;
   }

   public thing getSecond() {
     return this.second;
   }
}
Run Code Online (Sandbox Code Playgroud)

java generics generic-programming

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

欧几里德算法如何工作?

我刚刚发现这个算法来计算我的讲义中最大的公约数:

public static int gcd( int a, int b ) {
    while (b != 0) {
        final int r = a % b;
        a = b;
        b = r;
    }
    return a;
}
Run Code Online (Sandbox Code Playgroud)

所以r是将b分成a(得到mod)时的余数.然后b被分配给一个,其余被分配给b,和一个被返回.我不能为我的生活看到它如何运作!

然后,显然这个算法不适用于所有情况,然后必须使用这个:

public static int gcd( int a, int b ) {
    final int gcd;
    if (b != 0) {
        final int q = a / b;
        final int r = a % …
Run Code Online (Sandbox Code Playgroud)

java algorithm greatest-common-divisor

11
推荐指数
2
解决办法
8901
查看次数

Logn究竟是什么意思?

我正在为算法中的班级学习,并一直关注QuickSort.我理解算法及其工作原理,但不知道如何在一天结束时获得它所做的比较次数或登录实际意味着什么.

我理解基础知识,达到以下程度:

x=logb(Y) then
b^x = Y
Run Code Online (Sandbox Code Playgroud)

但这在算法性能方面意味着什么呢?这是你需要做的比较的数量,我明白......尽管如此,整个想法似乎是如此难以理解.例如,对于QuickSort,每个级别的K调用都涉及2^k每个涉及长度子列表的调用n/2^K.

所以,总结找到比较的数量:

log n
? 2^k. 2(n/2^k) = 2n(1+logn)
k=0
Run Code Online (Sandbox Code Playgroud)

为什么我们总结记录n?2n(1 + logn)来自哪里?很抱歉我的描述含糊不清,我很困惑.

algorithm performance complexity-theory logarithm quicksort

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

什么是分页?

这里解释了分页,幻灯片#6:

http://www.cs.ucc.ie/~grigoras/CS2506/Lecture_6.pdf

在我的讲义中,但我不能为我的生活理解它.我知道它是一种将虚拟地址转换为物理地址的方法.因此,磁盘上的虚拟地址被分成2 ^ k的块.在此之后我真的很困惑.有人可以用简单的语言向我解释一下吗?

memory paging ram virtual translation

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

实现Iterable接口

我刚刚在旧的试卷中找到了这个考试题目,我正准备参加即将到来的考试.我想不明白 :

下面描述了一个实现Iterable接口的设计部分类.此类的唯一目的是提供迭代属性的方法things.

我们需要在课堂上填写两件事来完成它.这是班级

private class PartialIterableClass /*FILL IN */ {
   private String[] things;
   public PartialIterableClass( String[] things ){
      this.things = things;
   }
   /*FILL IN 2*/
}
Run Code Online (Sandbox Code Playgroud)

我猜它应该类似于:

private class PartialIterableClass implements Iterable<PrivateIterableClass> {
   private String[] things;
   public PartialIterableClass( String[] things ){
      this.things = things;
   }
   public Iterator<PartialIterableClass> iterator( ){
   return new Iterator<PartialIterableClass>( ) {

   }
   }
}
Run Code Online (Sandbox Code Playgroud)

我不确定如何充实这个问题的答案,有人可以帮忙吗?

java iterator iterable interface

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

实现可比较的界面

我刚刚发现这个考试题目,无法弄清楚:

下面描述了一个实现Comparable接口的设计部分类.这个设计类的唯一目的是将它的实例与给定的字符串进行比较.

我们需要在课堂上填写两件事来完成它.这是班级:

public class PrivateComparableClass // FILL IN PART 1 { 
   private String thing;

    public PrivateComparableClass(String thing) {
     this.thing=thing;
    }
   //FILL IN PART 2
}
Run Code Online (Sandbox Code Playgroud)

我假设第1部分只对应于:

public class PrivateComparableClass implements Comparable {
Run Code Online (Sandbox Code Playgroud)

第2部分,我假设他期待compareTo方法的实现,但我真的不知道如何正确地实现这个:

public static int compareTo() {
  if this.thing.equals(thing){
  return 1;
  } else {
    return -1;
  }
}
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

java compare comparable

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