java数组重复元素
‘壹’ 用java编写 在两个数组里面 找出相同的元素 并输出
有两个数组,需要找出这两个数组之间相同的元素。
package cn.luxh.jpa.test;import java.util.HashSet;import java.util.Set;import org.junit.Test;public class ArrayTest {
/**
* 找出两个数组中相同的元素
* @param array1
* @param array2
* @return 返回相同的元素
*/
public Set<Integer> findSameElementIn2Arrays(Integer[] array1,Integer[] array2) {
Set<Integer> sameElementSet = new HashSet<Integer>();//用来存放两个数组中相同的元素
Set<Integer> tempSet = new HashSet<Integer>();//用来存放数组1中的元素(广州达内)
for(int i=0;i<array1.length;i++) {
tempSet.add(array1[i]);//把数组1中的元素放到Set中,可以去除重复的元素
}
for(int j=0;j<array2.length;j++) {
//把数组2中的元素添加到tempSet中
//如果tempSet中已存在相同的元素,则tempSet.add(array2[j])返回false
if(!tempSet.add(array2[j])) {
//返回false,说明当前元素是两个数组中相同的元
sameElementSet.add(array2[j]);
}
}
return sameElementSet;
}
@Test
public void testFindSameElementIn2Arrays(){
Integer[] array1 = {1,2,3,4,1,2,4,6,7,8,10,22,33};
Integer[] array2 = {1,2,3,4,1,2,4,6,7,8,10,22,33,55,66,77,88,99};
Set<Integer> sameElementSet = findSameElementIn2Arrays(array1,array2);
for(Integer i : sameElementSet) {
System.out.println(i);
}
}}
‘贰’ java 判断一个数组中是否有重复的元素
使用一个临时list,借助list.contains判断当前数组的值是否存在于list中,如果不存在则加入到list中,如果存在则记录出来。有点像把一个篮子中的桌球放到另一个空篮子中,如果篮子里面已经有的就不要再放进去了,没有的,一个个放进去。说到底就是个遍历和存在性判断问题。
‘叁’ JAVA 遍历数组,统计数组中包含几个相同的元素
正则表达式: 不知道这样算不算
int[] num={1,3,2,8,5,1,1,1};
String numstr = Arrays.toString(num);//把数组变成一个字符串[1, 3, 2, 8, 5, 5, 1, 1]
Pattern rex = Pattern.compile("1");//创建正则表达之对象匹配"1"
Matcher m = rex.matcher(numstr);// 匹配numstr字符串的匹配器
int count = 0;// 计数器,看匹配上了几个
while(m.find()){ // find()方法从字符串中匹配"1" 找到返回true
count += 1; //找到1个 计数器值加 1
}
System.out.println(count);
‘肆’ java怎么判断数组中有重复的元素
1、写两个for循环,外层for循环每取出一个值,都和内层for循环的值做比较,出现两次及以上相同的情况,即有重复元素。当然这种效率比较低。
2、写两个for循环,外层for循环取第一个值的时候,和内层循环的第二个值及之后的值比较;外层for循环取第二个值的时候,和内层循环的第三个值及之后的值比较……
以此类推,出现一次及以上相同的情况,即有重复元素。
过程就是如此,代码自己实现吧!
‘伍’ java排序一个数组(数组元素有重复的),并且记住新数组的元素在原数组中的位置,我需要能够运行的程序!
public class ArrayTest {
public static void main(String[] args) {
//java排序一个数组(数组元素有重复的),并且记住新数组的元素在原数组中的位置
int[] ary = {1,2,3,4,1,2};
int[] index = new int[ary.length];
for (int i = 0; i < index.length; i++) {
index[i] = i;
}
for (int i = 0; i < ary.length-1; i++) {
for (int j = i+1; j < ary.length; j++) {
if(ary[i]>ary[j]){
int temp = ary[i];
int p = index[i];
ary[i] = ary[j];
index[i] = index[j];
ary[j] = temp;
index[j] = p;
}
}
}
System.out.println(Arrays.toString(ary));
System.out.println(Arrays.toString(index));
}
}
‘陆’ java去掉数组里的重复的数据
计数方法,你在遍历数组外边int 一个数=0,如果某个数和数组【i】相等,就++
删除方法我用的是笨方法,因为数组不能直接增删操作,要先算出新数组的长度,在遍历出去,我是取巧了先排序了,当然你也可以用其他排序方法排序
public static void main(String[] args) {
int [] arr={1,2,2,3,4,5};
int len=arr.length;
Arrays.sort(arr);
int leng=0;
for( int i=0;i<arr.length-1;i++){
if(arr[i]!=arr[i+1]){
leng++;
}
}
if(arr[arr.length-2]!=arr[arr.length-1]){
leng++;
}
System.out.println(leng);
int newlength=0;
int []newArr=new int[leng];
for( int i=0;i<arr.length-1;i++){
if(arr[i]!=arr[i+1]){
newArr[newlength]=arr[i];
newlength++;
}
}
if(arr[arr.length-2]!=arr[arr.length-1]){
newArr[newlength]=arr[arr.length-1];
}
for(int i=0;i<newArr.length;i++){
System.out.println(newArr[i]);
}
}
‘柒’ Java如何将数组中具有相同的元素都删去
如果是要把List中的重复元素删除的话可以先吧List转成Set去除重复元素
比如现在有个数组为 myArray ,里面有部分的重复元素
Set mySet = new HashSet();
for(Object obj : Array){
mySet.add(obj);
}
mySet中所保存的元素就是唯一的了.
再吧mySet保存到数组中
完整例子:
// 创建一个数组,里面存在重复的元素
String[] myArray = {"s","s","f","d"};
Set<String> mySet = new HashSet<String>();
// 去除重复元素
for(String s : myArray){
mySet.add(s);
}
myArray = new String[mySet.size()];
int index = 0;
// 将去重后的结果存入数组
for(String s : mySet){
myArray[index] = s;
index++;
}
// 打印出来结果
System.out.println(Arrays.toString(myArray));
‘捌’ Java数组中重复数据的删除
java数组中去掉重复数据可以使用set集合,set本身内部是不保存重复的数据的,如下代码:
importjava.util.Arrays;
importjava.util.Set;
importjava.util.TreeSet;
publicclassceshi{
publicstaticvoidmain(String[]args){
int[]testArr={5,5,1,2,3,6,-7,8,6,45,5};//新建一个int类型数组
System.out.println(Arrays.toString(testArr));
Set<Integer>set=newTreeSet<Integer>();//新建一个set集合
for(inti:testArr){
set.add(i);
}
Integer[]arr2=set.toArray(newInteger[0]);
//数组的包装类型不能转只能自己转;吧Integer转为为int数组;
int[]result=newint[arr2.length];
for(inti=0;i<result.length;i++){
result[i]=arr2[i];
}
System.out.println(Arrays.toString(arr2));
}
}
运行结果如下:
‘玖’ java 返回数组连续重复元素的最大次数
你程序的逻辑是前后相等就加1,所以在在上面的1,1计数了1次,在中间4个3就是3次,加上最后的三个3是2次,结果当然就是6了。要改的话,前面的判断没啥必要可以去掉,改成
publicstaticintmaxNumRepeated(int[]a,intelem)
{
intcont=0;
intmaxNum=0;
for(inti=0;i<a.length;i++)
{
if(a[i]==elem)
{
cont++;
if(cont>maxNum)maxNum=cont;
}
elsecont=0;
}
returnmaxNum;
}
‘拾’ java数组中的元素可以重复吗
当然可以,全都一样都行