java重复元素个数
2023-01-10阅读(825)
问:java用程序实现求两个数组中相同元素的个数
- 答:public class T
{
public static void main(String[] args)
{
int[] oneArray = {30, 1, 9, 20, 11, 15, 41,25,52,8};
int[] twoArray = {15, 7, 1, 30, 22, 13, 40,11,8,50};
int count=0;
boolean find;
for(int i=0;i<oneArray.length;i++)
{
find=false;
for(int j=0;j<twoArray.length;j++)
{
if(oneArray[i]==twoArray[j])
{
if(!find)
{
count++;
find=true;
}
twoArray[j]=-1;
}
}
}
System.out.println("数组oneArray与数组twoArray共有"+count+"个相同的元素!");
}
}
问:java中怎样判断字符数组中相同元素的个数
- 答:看这段代码:
public class findChar {
public static void main(String[] arg) {
//你要测试的字符串
String testChar = "aaaasss";
// 记录某个字符出现的个数,在这里是'a'
int count = 0;
//将字符串变为字符数组
char[] ch = sc.next().toCharArray();
//循环判断是否有字符'a'
for (char a : ch) {
switch (a) {
// 如果有计数器加1
case 'a':
count++;
break;
}
}
}
//输入文件中包含字符'a'的个数
System.out.println("其中含有a " + count + " 个");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
这样就OK!有什么问题可以再问我! - 答:从前向后循环,一个个查找判断就行了吧?如果要找各个元素相同的次数,可以用MAP来存放,以元素值为key,出现次数为value 每次遇到等于key的字符就将value加1
问:一个java编程题,怎么求出数组中重复数字的出现次数,并按次数从大到下排序
- 答:前提 有一个数组 :int[] a = {1,2,3,4,5………………,3,10,1};
先要知道数组的最大最小值。
比如最大10,最小1;
int temp = new int[11] //比最大值大1,保证最后一个坐标是最大值
for(int i=0;i<数组元素个数;i++)
temp[a[i]]++
运行完了之后你对temp数组排序一下就行了,排序不用我说了吧
排序的时候要建立个数组记录排序后的数字以前的下标,下标就是那个重复出现的数字
这是最简单的方案,但是如果你最大值最小值较大,就不适用了 - 答:排序的话简单,Arrays的sort方法可以结局
出现的次数的话,推荐用Map来做
List list = Arrays.asList("aa,xx,ss,xx,ss,e,w,a,aa".split(","));
Map map = new HashMap();
for (String s : list) {
Integer i = map.get(s);
if(i == null)
map.put(s, 1);
else
map.put(s, ++i);
}
System.out.println(map); - 答:使用三个变量存储在比较
- 答:循环读取,循环比较!