我有一个返回List的方法.(getListMethod)
有功能差异吗?
ArrayList myList = (ArrayList) getListMethod();
Run Code Online (Sandbox Code Playgroud)
和
ArrayList myList = new ArrayList(getListMethod());
Run Code Online (Sandbox Code Playgroud) 假设我们有三个概念如下:
概念(attribute1,attribute2,..)
A(a,b,c,d)
B(a,b,c,d,e)
C(a,b,c,d,f)
在数据库中为这三个概念建模有三种选择:
1)按原样对它们进行建模
表{column1,column2,...}
A {id,a,b,c,d}
B {id,a,b,c,d,e}
C {id,a,b,c,d,f}
Con:存在数据冗余.
2)在一个表中建模
A {id,object_type,a,b,c,d,e,f}
Con:对于某些概念,某些字段仍为空.
3)使用表之间的关系
一个{parent_id,a,b,c,d}
B {id,parent_id,e}
C {id,parent_id,f}
Con:增加查询复杂性以连接表.
你会用哪种方法?你有其他解决方案吗?你认为第三种方法的性能较差吗?
mysql database data-modeling object-oriented-analysis object-oriented-database
我正在编写一个用C++编写的程序,并考虑到面向对象设计,它将二手车记录在数据库中.我有一个按年份对汽车进行排序的功能,但该功能应该是自己的类中的方法,汽车类中的方法,还是任何类之外的函数?我们被告知,在面向对象设计中,一切都应该在它自己的类中,并且每个类应该只有一个责任,所以我倾向于将函数作为一个方法在它自己的类中,但似乎没有必要.我该怎么办?
假设我有一个类Item,它有很多字段,其中一个是color.
我还有另一个类Holder存储Item.
每个都Holder可以有任意数量的实例,Item只要每个实例不超过一个Color。
equals()以一种在两个项目的颜色相等时返回 true 的方式实现,在SetHolder 内部使用 a of items是否有意义?或者我应该equals只在所有字段都相等时才返回 true 并使用另一种逻辑来实现Holder逻辑?
我有以下文本放入一些Ruby对象,以便我可以将它们写入数据库以在rails应用程序中使用.这些数据是波浪预报模型的一些输出,它显示了海洋中特定点的海洋膨胀.第一列是日和小时,然后组合膨胀(对此不感兴趣),接着是单个膨胀,其可以在任何一小时内从1到6膨胀变化.
+-------+-----------+-----------------+-----------------+-----------------+
| day & | Hst n x | Hs Tp dir | Hs Tp dir | Hs Tp dir |
| hour | (m) - - | (m) (s) (d) | (m) (s) (d) | (m) (s) (d) |
+-------+-----------+-----------------+-----------------+-----------------+
| 15 3 | 0.94 3 | 0.74 4.4 69 | 0.43 10.6 186 | 0.39 4.8 351 |
| 15 4 | 0.90 3 | 0.71 4.2 68 | 0.43 10.7 186 | 0.34 4.7 347 | …Run Code Online (Sandbox Code Playgroud) 在while循环中改变条件的顺序会使程序崩溃.如果我这样写:while(a[in-1]>=temp && in>0),该程序不会工作.为什么?错误是:ArrayIndexOutOfBoundsException:-1.以下代码有效,直到我进行上述更改.
public class ISort {
public int[] sort(int[] a){
int n=a.length;
for(int out=1;out<n;out++){
int temp=a[out];
int in=out;
while(in>0 && a[in-1]>=temp ){
a[in]=a[in-1];
in--;
}
a[in]=temp;
}
return a;
}
public static void main(String[] args){
int[] a={3,2,1,6,3,8,8,10,9};
ISort s=new ISort();
int[] res=s.sort(a);
for(int i=0;i<res.length;i++ ){
System.out.print(" "+res[i]+" ");
}
}
}
Run Code Online (Sandbox Code Playgroud)