A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Dreamkele 高级黑马   /  2016-10-14 19:35  /  4167 人查看  /  54 人回复  /   3 人收藏 转载请遵从CC协议 禁止商业使用本文

题目很简单:定义一个方法,将int数组中只出现一次的数打印出来.

54 个回复

倒序浏览
哪个校区啊,基础班刷人吗
回复 使用道具 举报
哪个校区啊,基础班刷人吗
回复 使用道具 举报
回复 使用道具 举报
public static void main(String[] args) {
                int[] arr = { 3, 1, 2, 6, 8, 2, 1, 4, 5, 0, 8, 5, 133, 12, 314, 344, 314, 9, 1, 4, 6 };
                HashSet<Integer> hs = new HashSet<>();
                for (Integer i : arr) {
                        hs.add(i);
                }
                for (Integer i : hs) {
                        System.out.println(i);
                }
}
大哥 一分钟不到。
回复 使用道具 举报 1 1
- - 还在基础班奋斗
看看是不是这样
public static void main(String[] args) {
                int []arr = {1,2,3,4,5,6,7,8,9,9,8,7,6,5,4,3,2,1,10};
                Map<Integer, Integer> map = new HashMap();
                for (int i = 0; i < arr.length; i++) {
                        if (!(map.containsKey(arr[i]))) {
                                map.put(arr[i], 1);
                        }else {
                                map.put(arr[i], map.get(arr[i])+1);
                        }
                }
                Set<Entry<Integer, Integer>> en = map.entrySet();
                for (Entry<Integer, Integer> e : en) {
                        if (e.getValue()<=1) {
                                System.out.println(e.getKey());
                        }
                }
        }
回复 使用道具 举报
6666666   楼上两位都是大神
回复 使用道具 举报
yyl010 初级黑马 2016-10-14 22:10:24
8#
public static void main(String[] args) {
                int [] arr = {1,3,6,45,67,35,1,35,4,6,8,25,45};
                HashMap<Integer, Integer> hm = new HashMap<>();
for (int i = 0; i < arr.length; i++) {
        hm.put(arr[i], hm.containsKey(arr[i])?hm.get(arr[i])+1:1);  //计数
}
               
                for (Integer in :  hm.keySet()) {
                        if (hm.get(in)==1) {//查找只出现一次的元素
                                System.out.println(in);
                        }
                }
        }

点评

三元运算符用这里表示同学学的很6啊  发表于 2016-10-14 23:19
回复 使用道具 举报
看不懂的说
回复 使用道具 举报
哥们,这题目确实不难啊

[Java] 纯文本查看 复制代码
import java.util.HashSet;


public class Test5 {

	/**
	 * 定义一个方法,将int数组中只出现一次的数打印出来.
	 */
	public static void main(String[] args) {
		int[] arr = {1,22,6,6,44,33,1};
		print(arr);
	}

	public static void print(int[] arr) {
		HashSet<Integer> hs = new HashSet<Integer>();
		for (int i = 0; i < arr.length; i++) {
			hs.add(arr[i]);
		}
		System.out.println(hs);
	}
}


显示结果为:[1, 33, 6, 22, 44]
回复 使用道具 举报
666666666666666666
回复 使用道具 举报
Jarc 高级黑马 2016-10-14 22:34:58
12#
回复 使用道具 举报
不要放弃啊 加油~
回复 使用道具 举报
Jerry007 发表于 2016-10-14 22:29
哥们,这题目确实不难啊

[mw_shl_code=java,true]import java.util.HashSet;

将int数组中只出现一次的数打印出来!!仔细看题,是只出现一次不是去重复,比如{1,2,3,3}输出的应该是{1,2}!今天我就是被这个题坑了,思维固定了...
回复 使用道具 举报
谢谢楼主分享,存进set集合
回复 使用道具 举报
这要看有没有规定用什么方式了,如果没有规定那就很简单了
回复 使用道具 举报
IceLoveInFire丶 发表于 2016-10-14 20:44
public static void main(String[] args) {
                int[] arr = { 3, 1, 2, 6, 8, 2, 1, 4, 5, 0, 8, 5, 133, 12 ...

大哥,你做错了,是将只出现一次的数打印出来,不是去重,{1,2,3,3}--->打印1,2 不是 1,2,3 点招题还是很坑的~
回复 使用道具 举报
Dreamkele 发表于 2016-10-14 22:49
将int数组中只出现一次的数打印出来!!仔细看题,是只出现一次不是去重复,比如{1,2,3,3}输出的应该是{1,2}! ...

这题目本身出的有问题,我按照要求将int数组中只出现一次的数字打印出来了啊,只是没按照int数组的方式打印出来而已,题目也没说要按照int数组的方式打印啊,我觉得我做的没毛病.
回复 使用道具 举报 1 0
Dreamkele 发表于 2016-10-14 22:52
大哥,你做错了,是将只出现一次的数打印出来,不是去重,{1,2,3,3}---&gt;打印1,2 不是 1,2,3 点招题还是很坑的 ...

对奥,明天看看吧
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
面向懵逼 发表于 2016-10-14 21:12
- - 还在基础班奋斗
看看是不是这样
public static void main(String[] args) {

这个思路可以,可惜当时我没想到~不过最好是封装成一个方法~
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马