给你个思路,先用Arrays.sort排序,再分组
解决方案 »
- 多字段排序问题
- Javadoc搜索比较利器——GroovyHelp3.0.9 GA发布
- 关于用一个socket多次对话的问题
- 如何提高HashMap的效率
- 请问如何让一个ButtonGroup中的单选按钮在已选择后,不能更改。谢谢
- 大吓们帮忙看看下面的代码,传输文件时出现内容丢失
- 哪里有Jbuiler9.0的使用手册可以下载啊(免费的电子书籍)!请各位帮忙.
- java的日期问题(今天下班前结账2002-7-24)
- 一个关于jdk1.3的问题,很奇怪,各位大虾帮忙!
- java提取特定字符串求助
- 为什么下载的邮件附件打开时是乱码,直接打开也是一样的?
- 怎样在".txt"文本中以行为单位插入、读取数据?
*将一个数组分成几个Vector,相同的数值放在同一个Vector中
*/import java.util.Vector;public class Sort{
public static void main(String[] args){
String[] array={"a","b","a","b","c","c","b","c","a","a","c","d","d"};
Vector sortArray=new Vector(); //存放分组
Vector v0=new Vector();
v0.add(array[0]);
sortArray.add(v0);
Vector strV=new Vector(); //存放已存在的各不相同的值,找到不同的就放进去
strV.add(array[0]);
boolean hasEquals=false; //是否找到相同的
int n=0;
for(int i=1;i<array.length;i++){
for(n=0;n<strV.size();n++){
if( array[i].equals((String)strV.elementAt(n)) ){
( (Vector)(sortArray.elementAt(n)) ).add(array[i]);
hasEquals=true;
//break;
}
}
if(!hasEquals){
//Vector vnadd1=new Vector();
//vnadd1.add(array[i]);
//sortArray.add(vnadd1);
sortArray.add(new Vector());
( (Vector)sortArray.elementAt(n) ).add(array[i]);
strV.add(array[i]);
}
}
//下面打印测试
System.out.println("strV.size:"+strV.size());
System.out.println("sortArray.size:"+sortArray.size());
for(int j=0;j<strV.size();j++){
System.out.println( (String)strV.elementAt(j) );
}
for(int i=0;i<sortArray.size();i++){
for(int j=0;j<((Vector)sortArray.elementAt(i)).size();j++){
System.out.println(i+" "+j+" "+(String)((Vector)sortArray.elementAt(i)).elementAt(j) );
}
}
}
}
1. Use Hashtable instead of Vector;
2. Understanding equals() method in Object.If you think careful above tips, you should know how to do that.