有一个数组
a[]={1,1,2,2,2,2,3,3,4,4,4,5,6,7,7,7}
要求把它分成几个数组
b1[]={1,1}
b2[]={2,2,2,2}
b3[]={3,3}
b4[]={4,4,4}
b5[]={5}
b6[]={6}
b7[]={7,7,7}这个算法怎么写啊!
帮帮小弟了!
a[]={1,1,2,2,2,2,3,3,4,4,4,5,6,7,7,7}
要求把它分成几个数组
b1[]={1,1}
b2[]={2,2,2,2}
b3[]={3,3}
b4[]={4,4,4}
b5[]={5}
b6[]={6}
b7[]={7,7,7}这个算法怎么写啊!
帮帮小弟了!
import java.util.ArrayList;public class Test{
public static void main(String[] args){
int[] a={1,1,2,2,2,2,3,3,4,4,4,5,6,7,7,7};
ArrayList b = new ArrayList();
int temp = 99999, bn = -1;
for(int i =0; i < a.length; i++){
if(temp != a[i]){
bn++;
ArrayList bi = new ArrayList();
b.add(bi);
}
((ArrayList)b.get(bn)).add(new Integer(a[i]));
temp = a[i];
}
for(int i =0; i < b.size(); i++){
System.out.println(b.get(i));
}
}
}
output:
[1, 1]
[2, 2, 2, 2]
[3, 3]
[4, 4, 4]
[5]
[6]
[7, 7, 7]
class hello
{ public static void main(String[] args)
{
byte abt[]={1,1,2,2,2,2,3,3,4,4,4,5,6,7,7,7};
int iMode = 7;
byte[][] aObj = new byte[iMode][];
int iIndex = 0;
byte btTmp = abt[0]; //该值不能和列表中的值一致。
int iCount = -1; //相同元素的计数器
for (int i = 0;i<abt.length ;i++ )
{
if (btTmp == abt[i]) iCount++;
else
{
aObj[iIndex] = new byte[iCount+1];
for (; iCount >=0 ; iCount-- )
{
aObj[iIndex][iCount] = btTmp;
}
iIndex++;
btTmp = abt[i];
iCount ++;
}
}
aObj[iIndex] = new byte[iCount+1];
for (; iCount >=0 ; iCount-- )
{
aObj[iIndex][iCount] = btTmp;
} for (int i = 0 ;i < iMode ; i++ )
{
System.out.println("the ["+i+"]");
byte[] abtTmp2 = aObj[i];
for (int j = 0; j < abtTmp2.length ; j++ )
{
System.out.println(abtTmp2[j]);
}
}
System.out.println("Hello World!");
}
}
本来也打算用容器类的,但是似乎太小题大做了。
如果数据都给定了,并且能够给出最大的范围,那么可以用偶的方法。
如果不是的话,那么可以用hashtable+vector arraylist之类的。
class hello
{ public static void main(String[] args)
{
int ai[]={1,1,2,2,2,2,3,3,4,4,4,5,6,7,7,7};
Hashtable hshTable = new Hashtable();
for (int i = 0 ; i < ai.length ; i++ )
{
Integer ITmp = new Integer(ai[i]);
Vector vtTmp = null;
if (hshTable.containsKey(ITmp))
{
vtTmp = (Vector)(hshTable.get(ITmp));
}
else
{
vtTmp = new Vector();
hshTable.put(ITmp,vtTmp);
}
vtTmp.add(ITmp);
}
System.out.println("Hello World!"+hshTable.toString() );
}
}
lst = [1,1,2,2,2,2,3,3,4,4,4,5,6,7,7,7,8]current = None
newlist = None
result = []for i in lst:
if i == current:
newlist.append(i)
else:
if newlist <> None:
result.append(newlist)
newlist = [i]
current = iif newlist <> None and len(newlist) > 0:
result.append(newlist)for arr in result:
for k in arr:
print "%s," % k,
print
输出:>pythonw -u "quiz2.py"
1, 1,
2, 2, 2, 2,
3, 3,
4, 4, 4,
5,
6,
7, 7, 7,
8,
>Exit code: 0
import java.util.*;
class hello
{
public static void main(String[] args)
{
int ai[]={1,1,2,2,2,2,3,3,4,4,4,5,6,7,7,7};
Hashtable hshTable = new Hashtable();
for (int i = 0 ; i < ai.length ; i++ )
{
Integer ITmp = new Integer(ai[i]);
Vector vtTmp = hshTable.containsKey(ITmp)?(Vector)(hshTable.get(ITmp)):new Vector();
vtTmp.add(ITmp);
hshTable.put(ITmp,vtTmp);
}
System.out.println("Hello World!"+hshTable.toString() );
}
}
import java.util.*;
class hello
{
public static void main(String[] args)
{
int ai[]={1,1,2,2,2,2,3,3,4,4,4,5,6,7,7,7};
Hashtable hshTable = new Hashtable();
for (int i = 0 ; i < ai.length ; i++ )
{
Integer ITmp = new Integer(ai[i]);
Vector vtTmp = (Vector)(hshTable.get(ITmp));
(vtTmp =(null == vtTmp?(new Vector()):vtTmp)).add(ITmp);
hshTable.put(ITmp,vtTmp);
}
System.out.println("Hello World!"+hshTable.toString() );
}
}