public class Test { public static void main(String[] args) { Integer[] is = { 1, 2, 1, 3, 2, 1, 3, 2, 3, 4 }; int[] sta = new int[is.length]; int count = 0;
for (int i = 0; i < is.length; i++) { sta[is[i]]++; } for (int i = 0; i < sta.length; i++) { if (sta[i] != 0) { count ++; System.out.println("数字 " + i + " 在is中出现的次数为 " + sta[i]); } } System.out.println("数字个数为:" + count); } } //统计个数的话,加个计数器就行了
public class Test { public static void main(String[] args) { Integer[] is={1,2,1,3,2,1,3,2,3,4};int[] sta = new int[is.length];for(int i = 0; i < i…… 这种算法第一次见,顶.......
public class Test
{
public static void main(String[] args)
{
Integer[] is={1,2,1,3,2,1,3,2,3,4};
int[] sta = new int[is.length];
for(int i = 0; i < is.length; i++)
{
sta[is[i]]++;
}
for(int i = 0; i < sta.length; i++)
{
if(sta[i] != 0)
{
System.out.println("数字 " + i + " 在is中出现的次数为 " + sta[i]);
}
}
}
}
{
public static void main(String[] args)
{
Integer[] is =
{ 1, 2, 1, 3, 2, 1, 3, 2, 3, 4 }; int[] sta = new int[is.length];
int count = 0;
for (int i = 0; i < is.length; i++)
{
sta[is[i]]++;
} for (int i = 0; i < sta.length; i++)
{
if (sta[i] != 0)
{
count ++;
System.out.println("数字 " + i + " 在is中出现的次数为 " + sta[i]);
}
}
System.out.println("数字个数为:" + count);
}
}
//统计个数的话,加个计数器就行了
如果is数组中的数大于is.length,那么sta数组就会发生数组下标越界异常ArrayIndexOutOfBoundsException吧!
import java.util.Arrays;
public class Test
{
public static void main(String[] args)
{
Integer[] is =
{ 1, 2, 1, 3, 2, 1, 3, 2, 3, 4 ,100};
Arrays.sort(is);
int len = is[is.length - 1] > is.length?is[is.length - 1]:is.length;
len ++;
int[] sta = new int[len];
int count = 0;
for (int i = 0; i < is.length; i++)
{
sta[is[i]]++;
} for (int i = 0; i < sta.length; i++)
{
if (sta[i] != 0)
{
count ++;
System.out.println("数字 " + i + " 在is中出现的次数为 " + sta[i]);
}
}
System.out.println("数字个数为:" + count);
}
}
//呵呵,用空间换时间吧,确实有点问题,改了一下,这个应该没问题了。
code]
public class Test3
{
public static void main(String[] args)
{
int num = 1;
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
Integer[] is = {1,2,1,3,2,1,3,2,3,4};
Arrays.sort(is);
for(int i = 0;i<is.length; i++){
if(i !=(is.length-1)){
if(is[i]==is[i+1]){
num++;
}
if(is[i]!=is[i+1]){
map.put(is[i],num);
num = 1;
}
}
else{
if(is[i]==is[i-1]){
map.put(is[i],num);
}
else{
map.put(is[i],1);
}
}
}
System.out.println(map.toString());
}
}
//需求,一共10个数,现在需要确定里面一共有几个数,每个数出现了几次
//Integer[] ints={1,6,6,7,7,1,1,6,7,6};
List<Integer> list=new LinkedList<Integer>();
list.add(1);
list.add(6);
list.add(6);
list.add(7);
list.add(7);
list.add(1);
list.add(1);
list.add(6);
list.add(7);
list.add(6);
System.out.println(list);
//去除重复的数据
Set<Integer> set=new HashSet<Integer>(list);
System.out.println(set);
for (Integer integer : set) {
int tempNum=0;
for (int i = 0; i < list.size(); i++) {
if(integer==list.get(i)){
list.remove(i); //去除数据
i--; //
tempNum++;
}
}
System.out.println(integer+"的数量是:"+tempNum);
}
}我当时想到的能处理的方式。本来应该是程序里取出来的数据放到list里的。
我标题却写成了数组,是在不好意思,
看我上面的代码,list中里面存放的数是不确定的,
在里层for循环是,我remove掉这个值,就是为了能减少再次循环的次数。
List<Integer> list=new LinkedList<Integer>();
List<Integer> list=new ArrayListList<Integer>();
如果用remove的方法话。我不知道上面需要定义LinkedList还是 ArrayListList比较好。
各位给看一下我的这个代码处理是否有所不脱。有没有能改进的地方。毕竟如果消耗资源太大就不好了。
{
public static void main(String[] args)
{
Integer[] is={1,2,1,3,2,1,3,2,3,4};int[] sta = new int[is.length];for(int i = 0; i < i……
这种算法第一次见,顶.......