设计一个集合类set,创建两个对象,利用math.random()产生两个类中的元素,最后对他们实施“交”“并”?
本人是一个java新手,这道题是书上的一个练习题目,我想不出来,希望能给我点提示。还有就是想请教各位高手们,java是要怎么学,我觉得我现在好像缺少方法了???请指教!!!
本人是一个java新手,这道题是书上的一个练习题目,我想不出来,希望能给我点提示。还有就是想请教各位高手们,java是要怎么学,我觉得我现在好像缺少方法了???请指教!!!
假设这两个类分别为A和B,在此我们再创建一个类叫C。
求交集:建立一个双层的for循环,在A中取第一个数,然后再B中查找是否有相同的,如果有,将该数存入到C中,依次类推,知道将A中的数遍历完,这样的话C中的数据就是最终的交集。
求并集:现将A中的所有数据导入到C中,然后再从B中一个个取数据,在放入C之前进行判断,如果C中没有该数再放入,知道将B中的所有数都判断完。最终C中的数据就是A和B的并集。我提供的思路效率不是很高,会浪费一些时间,但是能解决问题。
我想告诉你的是:编程一定要动脑子,不要指望别人给你提供确定的方法,更不要指望别人把完整的代码都给你,这样不利于你的学习。应该勤动脑子,自己想出一套方案,然后再一点点去实现。最后再参考一下别人的方法,看看有没有借鉴之处。希望能解决你的问题。
别人给你说的都是理论的,呵呵,还是一样的啊。和学别的东西都一样!要说什么方法,就是实践出真知!
用Set的2个函数就可以搞定,去看看api吧
A,B :
并: A.addAll(B)
交:
Set A = new HashSet();
Set B = new HashSet();
Iterator it = B.iterator();
Set C = new HashSet();
while(it.hasNext()){
Object o = it.next();
if(A.contains(o)){
C.add(o);
}
}
import java.util.*;public class Test{
private static Random rand = new Random(20);
public static Set<Integer> create(int sz) {
Set<Integer> set = new HashSet<Integer>();
for(int i = 0; i < sz; i++)
set.add(rand.nextInt(10));
return set;
}
public static Set<Integer> union(Set<Integer> s1, Set<Integer> s2) {
Set<Integer> set =new HashSet<Integer>(s1);
set.addAll(s2);
return set;
}
public static Set<Integer> intersection(Set<Integer> s1, Set<Integer> s2) {
Set<Integer> set =new HashSet<Integer>(s1);
set.retainAll(s2);
return set;
}
public static void main(String[] args) {
Set<Integer> set1 = create(10);
Set<Integer> set2 = create(10);
System.out.println(set1.toString());
System.out.println(set2.toString());
System.out.println(union(set1, set2));
System.out.println(intersection(set1, set2));
}
}
数据库的要另找,网上能找到尚学堂的Oracle,马士兵讲的,挺不错的!
shopping这个项目也有从头带到尾的,也是马士兵的,要找找
做项目是很重要的,从简单的做起,慢慢体会其中的分析与设计 学java还是从视频入门的好,千万不要一开始就去看《Thinking in java》,吃力不讨好,学到web时可以看看张孝祥的《
深入体验JAVA Web开发内幕——核心基础》,写的很详细,不过他的视频一般,
JavaScript就看《JavaScript高级程序设计》,html比较简单,css也比较简单,不过css布局因人而异,有人觉得很好理解,有人觉得很难,搞个Dreamweaver多练练也就熟悉了。设计模式可以看《大话设计模式》,入门很好! 补充一点:张孝祥的那本《
深入体验JAVA Web开发内幕——核心基础》真的不错,而JavaScript的就不行,不够细,而且太多其他内容(html、css的,而且写的一般),他写的那本java的书就没看过,不知道怎样,另外,他的视频实在不好,在念书一样。
个人认为,还是马士兵的视频好,讲的很好,而且还讲了很多学习的方法,很适合入门,还有,不要一下子下一大堆的视频,不要把什么孙鑫、张孝祥、马士兵的全下,你是看不完的!你可以先下他们的第一集,看看谁的讲课方式适合自己,再做定夺,不过个人十分推荐马士兵的,真的讲的很好!!