ArrayList的问题! 假设我有一个点类,myPoint,有一个字段为int N,表示这个点在哪一条直线上!现在我有一个ArrayList,假设为PointList,里面是myPoint的对象!我想实现一个方法,把这个PointList中N相同的点分别存放在另外的ArrayList中,N有多少个不同的值就新建多少个ArrayList!该怎么实现!谢谢各位DAXIA了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 个人感觉存放到另外一个ArrayList中,使用contains方法是可以实现的,一个更简单的方式是使用Hashtable,比较快速,通过Hashtable中key的个数,可以确定有多少个N,再动态申请一个ArrayList的数组就可以了。不过这个方法只是我的初步设想,估计可以有优化的地方。 用HashMap吧, N 当面做为key, myPoint对象当做value. public ArrayList getLines(ArrayList pointList){ if(pointList == null) return new ArrayList(); if(pointList.isEmpty()) return new ArrayList(); HashSet hs = new HashSet(); for(int i=0;i<pointList.size();i++) { (myPoint)mp = pointList.get(i); boolean found = false; Iterator it = hs.iterator(); while(it.hasNext()) { (Integer)myn = it.next(); if(myn.intValue() == mp.N) { found = true; break; } } if(!found) hs.add(new Integer(mp.N)); } return new ArrayList(hs);} 回复人: lei198203(lei) ( ) 信誉:100 2005-08-08 11:22:00 得分: 0 用HashMap吧, N 当面做为key, myPoint对象当做value. ~~~~~~~~~~~~~ ---------------------------------------------------------------------------楼上的兄弟,N能当key么?若new Integer(N),仍然不能当key呀,因为每次都要new 新的。我的方法比较笨啦,如需优化,请跟贴。(N的数目如果比较大,只是可以用二分查找法,提高效率) 又见 aico(aico)兄!真是感谢啊! 大家帮忙看一下这个程序! 网上找过来的得到字符的unicode代码,有点看不懂,请大侠解释一下 怎么从一个select语句中截取表名 谁知道怎么在jcreator 中生成 javadoc c 中的算法, 转换成java中的 金蝶BOS开发的前景 请问realm到底是什么意思? 小弟想用java实现像c++中的缺省值的功能,不知如何实现。希望那位大虾指点一二。多谢,一定给分! 在java 里,有没有判断字符串是否是数字的函数?(高分) 调查:这里多少人经常看jdk document JTable显示区域之自动定位 帮忙看看那的错误,谢谢了!!!!
{
if(pointList == null)
return new ArrayList();
if(pointList.isEmpty())
return new ArrayList();
HashSet hs = new HashSet();
for(int i=0;i<pointList.size();i++)
{
(myPoint)mp = pointList.get(i);
boolean found = false;
Iterator it = hs.iterator();
while(it.hasNext())
{
(Integer)myn = it.next();
if(myn.intValue() == mp.N)
{
found = true;
break;
}
}
if(!found)
hs.add(new Integer(mp.N));
}
return new ArrayList(hs);
}
用HashMap吧, N 当面做为key, myPoint对象当做value.
~~~~~~~~~~~~~
---------------------------------------------------------------------------
楼上的兄弟,N能当key么?
若new Integer(N),仍然不能当key呀,因为每次都要new 新的。
我的方法比较笨啦,如需优化,请跟贴。
(N的数目如果比较大,只是可以用二分查找法,提高效率)