有一个数组比如:int temp[]={1,1,2,3,3,3,3,4,4,4,5,4}
现在有一个要求:
将数组从开始每3个当成一个小组,计算temp中不同元素的个数,并建立一个新数组
如: 不同个数
1,1,2 2
3,3,3 1
3,4,4 2
4,5,4 2
所以总个数为:7
输出个数:7
建立的新数组为temp2={1,2,3,3,4,4,5}
现在有一个要求:
将数组从开始每3个当成一个小组,计算temp中不同元素的个数,并建立一个新数组
如: 不同个数
1,1,2 2
3,3,3 1
3,4,4 2
4,5,4 2
所以总个数为:7
输出个数:7
建立的新数组为temp2={1,2,3,3,4,4,5}
import java.util.*;public class Test04 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int temp[]={1,1,2,3,3,3,3,4,4,4,5,4};
int p=0;
boolean isDef[]=new boolean[temp.length];
while(p<temp.length){
for(int i=0;i<3;i++)
for(int j=i+1;j<3;j++)
if(temp[p+i]==temp[p+j])isDef[p+j]=true;
p=p+3;
}
int k=0;
ArrayList<Integer> rslt=new ArrayList<Integer>();
for(int i=0;i<temp.length;i++)
if(isDef[i]==false){
k++;
rslt.add(temp[i]);
}
System.out.println("不同的个数:"+k);
System.out.println(rslt);
}}
static int[] getIntArr(int[] arr,int grpN){
int[] result = new int[arr.length];
int len = 0;
int relen = 0;
while(len<arr.length){
int ti = len;
int temi = relen;
for(int i=ti;i<(ti+grpN);i++){
boolean flag = true;
for(int j=temi+1;j<(temi+grpN);j++){
if(j>=result.length-1)break;
if( result[j]==arr[len] ){
flag = false;
}
}
if(flag)result[++relen] = arr[len];
len++;
if(len>=arr.length-1)break;
}
} int[] re = new int[relen];
for(int i=0;i<relen;i++){
re[i] = result[i+1];
System.out.println(re[i]);
}
return re;
} public static void main(String[] args){
int[] arr = {1,2,2,2,2,2,5,6,6,7};
int[] result = getIntArr(arr,3); }
};
re[i] = result[i+1];
public void fun10() {
int ints[] = { 1, 1, 2, 3, 3, 3, 3, 4, 4, 4, 5, 4 };
Set set = new HashSet();
List list = new ArrayList();
int count = 0;
for (int i = 0; i < ints.length; i++) {
int temp = ints[i];
int size = set.size();
set.add(new Integer(temp));
if(size != set.size()){
list.add(new Integer(temp));
}
count++;
if(count == 3){
Conica.pl(temp+" "+set.size()+"个不同");
count = 0;
set.clear();
}else{
Conica.pr(temp+",");
}
}
Conica.pl("list is:"+list);
int[] newInts = new int[list.size()];
for(int k=0; k<list.size() ;k++){
newInts[k] = ((Integer)list.get(k)).intValue();
}
Conica.pr(newInts);
}
List list=new ArrayList();
int cur=0;
while(cur<temp.length){
Set set=new TreeSet(); //如果不需要顺序,使用HashSet
for(int i=0;i<Math.min(groupSize,temp.length-cur);i++){
set.add(new Integer(temp[cur+i]));
}
list.addAll(set);
cur+=groupSize;
}
int[] ret=new int[list.size()];
for(int i=0;i<list.size();i++){
ret[i]=((Integer)list.get(i)).intValue();
}
return ret;
}