新人求助,老师出的一道题,

chenhao237 2012-09-28 06:57:57
int[] num={1,2,3,1,1,9,5,2,3};//想要删除重复的元素
for(int i=0;i<num.length;i++){
int tem=num;
for(int j=0;j<num.length;j++){
if(tem==num[j]){
//这里想删除重复的元素,怎么写?
}
}
}
...全文
497 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
wnf2009 2012-10-03
  • 打赏
  • 举报
回复
放进set不就好了
  • 打赏
  • 举报
回复
哈哈,没想到这么多回答
Mourinho 2012-10-01
  • 打赏
  • 举报
回复
用数组模仿set集合写了个


public class Test {
//删除重复的元素
//int[] num={1,2,3,1,1,9,5,2,3};
public static void main(String[] args){
int[] num = {1,2,3,1,1,9,5,2,3};
removeRepeatNums(num);
}

private static void removeRepeatNums(int[] arr){
//输出结果的数组
int[] resultArr = new int[arr.length];
for(int i = 0;i < resultArr.length;++i) resultArr[i] = Integer.MIN_VALUE;
for(int i = 0;i < arr.length;++i){
for(int j = 0; ;++j){
if(resultArr[j] == arr[i]) break;
if(resultArr[j] == Integer.MIN_VALUE){
resultArr[j] = arr[i];
break;
}
}
}
//输出
for(int i = 0;resultArr[i] != Integer.MIN_VALUE;++i){
System.out.print(resultArr[i] + " ");
}
}
}

liubo1502838 2012-10-01
  • 打赏
  • 举报
回复
老师出题 不可能出超范围的 元素前移 最后一位复制成0 你试试 我现在没电脑
zcmbuer 2012-10-01
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 的回复:]

老师出题 不可能出超范围的 元素前移 最后一位复制成0 你试试 我现在没电脑
[/Quote]

同意17楼的意见用现有的知识解决,其实抛开集合思路还是蛮多的,比例覆盖掉,或者把没重复的转存到另一数组,最后引用给num
_南天北落 2012-09-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

其实没学集合可以用数组解

Java code


public class Test {
public static void main(String[] args) {

int[] num = { 1, 2, 3, 1, 1, 9, 5, 2, 3 };// 想要删除重复的元素
int[] num_tmp = new int[num.lengt……
[/Quote]
这个目的肯定不是让用集合做
zhaoming262350 2012-09-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

其实没学集合可以用数组解

Java code


public class Test {
public static void main(String[] args) {

int[] num = { 1, 2, 3, 1, 1, 9, 5, 2, 3 };// 想要删除重复的元素
int[] num_tmp = new int[num.lengt……
[/Quote]有数组这样处理可以
a8509190 2012-09-29
  • 打赏
  • 举报
回复
你这个J应该从1开始 不是0 拿0和1做对比,没学过集合直接用数组也可以 就是第一个和第二个对比 加入相等 直接让第二个的值等于第三个 第三个的值等于第四个 这样相当于删除了 第二个
honcur 2012-09-29
  • 打赏
  • 举报
回复
集合的话很好解决。
  • 打赏
  • 举报
回复
LZ接触java没多久吧?建议楼主把帖子删掉,多想想,一来没必要,二来多锻炼一下逻辑思维
  • 打赏
  • 举报
回复
巩固基础知识
晓风吹雾 2012-09-29
  • 打赏
  • 举报
回复

Integer[] num = { 1, 2, 3, 1, 1, 9, 5, 2, 3 };
TreeSet<Integer> set = new TreeSet<Integer>(Arrays.asList(num));
for (Integer item : set) {
System.out.println(item);
}
Gary_Cui_1st 2012-09-29
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

引用 4 楼 的回复:

其实没学集合可以用数组解

Java code


public class Test {
public static void main(String[] args) {

int[] num = { 1, 2, 3, 1, 1, 9, 5, 2, 3 };// 想要删除重复的元素
int[] num_tmp = new int[num.len……
[/Quote]



很明显,用SET做,是最好的方法,SET的功能就是剔除重复的容器
nmyangym 2012-09-28
  • 打赏
  • 举报
回复
借助java.util.Arrays类,写了一个,楼主参考:

import java.util.Arrays;
public class TakeOutSameOne
{
public static void main(String[] args)
{
int[] num={1,2,3,1,1,9,5,2,3}; //想要删除重复的元素
int[] newnum=new int[num.length]; //存放没有重复的数组。
newnum[0]=num[0]; //复制第一个元素。
Arrays.sort(num); //排序。
int remain=0;
for(int i=1,k=0;i<num.length;i++)
{
if(num[i]!=newnum[k]) //新数组里没有,就放进去。
{
newnum[++k]=num[i];
remain=k+1; // 记录无重复元素数。
}

}
int[] last=Arrays.copyOf(newnum,remain);//去掉多余的元素(0)。
System.out.println(Arrays.toString(last)); //显示。
}
}

wangchen19931113 2012-09-28
  • 打赏
  • 举报
回复
神人,国庆我也要做学吧,把java学好
杀手 2012-09-28
  • 打赏
  • 举报
回复
其实没学集合可以用数组解



public class Test {
public static void main(String[] args) {

int[] num = { 1, 2, 3, 1, 1, 9, 5, 2, 3 };// 想要删除重复的元素
int[] num_tmp = new int[num.length];
int l = -1;
for (int i = 0; i < num.length; i++) {
if (find(num[i], num_tmp)) {
l++;
num_tmp[l] = num[i];
}
}
for (int i = 0; i <= l; i++) {
System.out.print(num_tmp[i]);
}
}

public static boolean find(int num, int[] num_tmp) {
int length = num_tmp.length;
for (int i = 0; i < length; i++) {
if (num_tmp[i] == num) {
return false;
}
}
return true;
}
}
chenhao237 2012-09-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
集合啊学了?
[code=Java]
int[] num={1,2,3,1,1,9,5,2,3}
Set set = new HashSet()
for(int i = 0;i <num.length;i++){
set.add(num[i]);
}
Iterator it = set……
[/Quote]


....看不懂哦,难怪我做不出来...知识还不够 啊啊
Mr_sunboy 2012-09-28
  • 打赏
  • 举报
回复
集合啊学了?

int[] num={1,2,3,1,1,9,5,2,3}
Set set = new HashSet()
for(int i = 0;i<num.length;i++){
set.add(num[i]);
}
Iterator it = set.iterator();
while(it.hasNext()){
System.out.print(it.next+",");
}

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧