It's the better:第一种办法:把数组中的元素扔进一个Set中,一边扔,一边用contains()方法判断。(如果计数就用Map)
、、、、、、、、、、、、、、、、、、、、、、、、、 public Set selectArray(int[]ary){ Set set=new HashSet(); for(int i=0;i<ary.length;i++) { for(int j=i+1;j<ary.length;j++){ if(ary[j]==ary[i]){ set.add(ary[i]); } } } return set; }
import java.util.*;class GetDuplicate { public static void main(String[] args) { int[] num = {1,2,3,55,3}; Set set = new HashSet(); List list = new ArrayList();
for(int i = 0; i < num.length; i++) { if(set.contains(num[i])) { list.add(num[i]); } else { set.add(num[i]); } }
public void test3(){ int[] num = new int[]{1,2,3,55,3}; for(int i=0;i<num.length;i++){ for(int j=i+1;j<num.length;j++){ if(num[i]==num[j]){ System.out.println(num[i]); } } } }
public void test3(){ int[] num = new int[]{1,2,3,55,3}; for(int i=0;i<num.length;i++){ for(int j=i+1;j<num.length;j++){ if(num[i]==num[j]){ System.out.println(num[i]); } } } }
public void test3(){ int[] num = new int[]{1,2,3,55,3}; for(int i=0;i<num.length;i++){ for(int j=i+1;j<num.length;j++){ if(num[i]==num[j]){ System.out.println(num[i]); } } } }
这种方法,只能用于这个数组,如果是这个数组的话就会有问题int[] Num={1,2,2,5,6,1,235,36,1,1,1,54}; 我也是个初学者,我是这样写的,觉的比较复杂public static void uniformNum(int[] Num) { Set set1 = new HashSet<Integer>(); Set set2 = new HashSet<Integer>();
for(int i:num)
{
....
}
第二种办法:如果你的数组元素的值范围比较小,可以设一boolean数组,数组的大小就是元素值的范围的大小,比如元素范围在-5~+5之间,你可以设new boolean b[11]的数据,扫描你的数组a,a[i]+5做为下标,设置b数组的值为true ,一边设一边判断b[a[i]+5]是不是true。(如果是计数b数组就设为int。)
第三种办法:从第一个元素(最后一个也可以)开始,一个个的与后面(前面的)的元素比较,找出来就行了。
可能还有其它办法。
public Set selectArray(int[]ary){
Set set=new HashSet();
for(int i=0;i<ary.length;i++)
{
for(int j=i+1;j<ary.length;j++){
if(ary[j]==ary[i]){
set.add(ary[i]);
}
}
}
return set;
}
import java.util.*;class GetDuplicate {
public static void main(String[] args) {
int[] num = {1,2,3,55,3};
Set set = new HashSet();
List list = new ArrayList();
for(int i = 0; i < num.length; i++) {
if(set.contains(num[i])) {
list.add(num[i]);
}
else {
set.add(num[i]);
}
}
Iterator it = list.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}
}
int[] num = new int[]{1,2,3,55,3};
for(int i=0;i<num.length;i++){
for(int j=i+1;j<num.length;j++){
if(num[i]==num[j]){
System.out.println(num[i]);
}
}
}
}
int[] num = new int[]{1,2,3,55,3};
for(int i=0;i<num.length;i++){
for(int j=i+1;j<num.length;j++){
if(num[i]==num[j]){
System.out.println(num[i]);
}
}
}
}
int[] num = new int[]{1,2,3,55,3};
for(int i=0;i<num.length;i++){
for(int j=i+1;j<num.length;j++){
if(num[i]==num[j]){
System.out.println(num[i]);
}
}
}
}
这种方法,只能用于这个数组,如果是这个数组的话就会有问题int[] Num={1,2,2,5,6,1,235,36,1,1,1,54};
我也是个初学者,我是这样写的,觉的比较复杂public static void uniformNum(int[] Num)
{
Set set1 = new HashSet<Integer>();
Set set2 = new HashSet<Integer>();
for(int i=0;i<Num.length;i++)
{
int = set1.size();
set1.add(Num[i]);
if(set1.size()==)
{
set2.add(Num[i]);
}
}
Iterator<Integer> iterator = set2.iterator();
while(iterator.hasNext())
{
System.out.print(iterator.next()+" ");
}
}