一道JAVA经典面试题目的两种解法
题目要求:String s="-1 2 5 78 129 -65 -23";将字符串进行升序排序后输出。
方法一:使用数组进行排序
思路:
1、获取字符串中的数值;
2、将数组存入整型数组中;
3、对int数组进行排序;
4、将int数组变成字符串;
步骤:
1、切割;
2、对字符串数组中元素进行转化存入;
3、对int数组进行sort;
4、把int数组变成字符串;
源代码如下:
/** *@date:2013年9月25日 *@author:lkx / /* 练习:String s=“-1 28 72 104 -98 12” 题目:将字符串进行升序排序后输出生成新的字符串 思路:1、获取字符串中的数值; 2、将数组存入整型数组中; 3、对int数组进行排序; 4、将int数组变成字符串; 步骤: 1、切割; 2、对字符串数组中元素进行转化存入; 3、对int数组进行sort; 4、把int数组变成字符串; */ import java.util.*; class Face { /* 将字符串通过空格切割成字符数组 */ public static String[] getStrArray(String str) { return str.split(" "); } /* 将字符数组转化为整型数组 */ public static int[] toIntArray(String[] str) { int [] intArray=new int[str.length]; for(int i=0;i<str.length;i++) { intArray[i]=Integer.parseInt(str[i]); } return intArray; } /* 将排序后的整型数组转化为字符串 */ public static String toStingArray(int[] num)//整型数组转化成字符串 { StringBuilder sb=new StringBuilder(); for(int i=0;i<num.length;i++) { if(i!=num.length-1) sb.append(num[i]+","); else sb.append(num[i]); } return sb.toString(); } public static void main(String[] args) { String s="-1 2 5 78 129 -65 -23"; String [] str=getStrArray(s); int[] num=toIntArray(str); Arrays.sort(num); String y=toStingArray(num); System.out.println(y); } }
方法二:使用集合框架TreeSet
原解法虽然思路清晰,按部就班,便于理解,但是代码略长,一个简单的功能用了将近70行代码,
为什么我们不换一种思路,用集合框架强大的容器功能实现这一程序呢。
源代码如下:
/** *@Date:2013年9月28日 *@author:lkx */ /*练习:String s=“-1 28 72 104 -98 12” 题目:将字符串进行升序排序后输出生成新的字符串 */ import java.util.*; class StringSort { //将字符串通过空格切割成字符数组 public static String[] getStrArray(String str){ return str.split(" "); } //用集合框架TreeSet容器存放数据 public static void TreeSetSave(String []num){ TreeSet ts=new TreeSet(); for (int i=0;i<num.length;i++ ){ ts.add(Integer.parseInt(num[i])); /*TreeSet类底层数据结构为红黑树,可对实现了Comparable接口 的元素(本例中为Integer)进行自然排序*/ } for(Iterator it=ts.iterator();it.hasNext();)//使用迭代器输出 System.out.println(it.next()); } public static void main(String[] args) { String s="-1 2 5 78 129 -65 -23"; String []num=getStrArray(s); TreeSetSave(num); } }
一道JAVA经典面试题目的两种解法的更多相关文章
- C语言经典面试题目(转的,不过写的的确好!)
第一部分:基本概念及其它问答题 1.关键字static的作用是什么? 这个简单的问题很少有人能回答完全.在C语言中,关键字static有三个明显的作用: 1). 在函数体,一个被声明为静态的变量在这一 ...
- 33条C#、.Net经典面试题目及答案
33条C#..Net经典面试题目及答案[zt] 本文集中了多条常见的C#..Net经典面试题目例如".NET中类和结构的区别"."ASP.NET页面之间传递值的几种方式? ...
- 33条C#、.Net经典面试题目及答案[zt]
33条C#..Net经典面试题目及答案[zt] 本文集中了多条常见的C#..Net经典面试题目例如“.NET中类和结构的区别”.“ASP.NET页面之间传递值的几种方式?”,并简明扼要的给出了答案,希 ...
- 经典面试题目——250M内存处理10G大小的log文件
前言 周末逛知乎的时候,看到的一个经典面试题目:http://www.zhihu.com/question/26435483.非常经典的一道分而治之的题目. 题目描写叙述例如以下: 有次面试遇到一个问 ...
- Java中HashMap遍历的两种方式
Java中HashMap遍历的两种方式 转]Java中HashMap遍历的两种方式原文地址: http://www.javaweb.cc/language/java/032291.shtml 第一种: ...
- java中数组复制的两种方式
在java中数组复制有两种方式: 一:System.arraycopy(原数组,开始copy的下标,存放copy内容的数组,开始存放的下标,需要copy的长度); 这个方法需要先创建一个空的存放cop ...
- java动态获取WebService的两种方式(复杂参数类型)
java动态获取WebService的两种方式(复杂参数类型) 第一种: @Override public OrderSearchListRes searchOrderList(Order_Fligh ...
- Java使用SFTP和FTP两种连接方式实现对服务器的上传下载 【我改】
[]如何区分是需要使用SFTP还是FTP? []我觉得: 1.看是否已知私钥. SFTP 和 FTP 最主要的区别就是 SFTP 有私钥,也就是在创建连接对象时,SFTP 除了用户名和密码外还需要知道 ...
- Java描述表达式求值的两种解法:双栈结构和二叉树
Java描述表达式求值的两种解法:双栈结构和二叉树 原题大意:表达式求值 求一个非负整数四则混合运算且含嵌套括号表达式的值.如: # 输入: 1+2*(6/2)-4 # 输出: 3.0 数据保证: 保 ...
随机推荐
- *[topcoder]TheMatrix
http://community.topcoder.com/stat?c=problem_statement&pm=13035 矩阵棋盘的题,比较典型.可以定两条column夹住,然后上下扫, ...
- SpringMVC学习总结(五)——SpringMVC文件上传例子
这是用的是SpringMVC-3.1.1.commons-fileupload-1.2.2和io-2.0.1 首先是web.xml <?xml version="1.0" e ...
- 电容值E系列标称方法
本节首先介绍常用的E系列标称方法,然后介绍电阻.电容器.电感器.二极管的分类.性能和识别方法,以及简单的实用电路. 一.E系列标称方法 厂家生产的电阻器,并不是包含任何阻值,就像人民币,只有1.2.5 ...
- Android:改变Activity切换方式
overridePendingTransition(enterAnim, exitAnim); Intent intent =new Intent(this,item2.class); startAc ...
- java:类集框架
类集框架:jdk提供的一系列类和接口,位于java.util包当中,主要用于存储和管理对象,主要分为三大类:集合.列表和映射. 集合Set:用于存储一系列对象的集合.无序.不允许重复元素. 列表Lis ...
- View的个得区域函数getHitRect,getDrawingRect,getLocalVisibleRect,getGlobalVisibleRect(*)
注意: OnCreate()函数中 调用下面函数,结果全为0,要等UI控件都加载完了才能得到绘制时的值. getHitRect 以父控件的左上为原点,计算当前view在父控件的区域,不管父控件在屏幕的 ...
- POJ 2065 SETI (高斯消元 取模)
题目链接 题意: 输入一个素数p和一个字符串s(只包含小写字母和‘*’),字符串中每个字符对应一个数字,'*'对应0,‘a’对应1,‘b’对应2.... 例如str[] = "abc&quo ...
- poj 2411 Mondriaan's Dream(状态压缩dP)
题目:http://poj.org/problem?id=2411 Input The input contains several test cases. Each test case is mad ...
- SQL查看数据库所用用户表数量和使用的空间
SQL Server数据库管理员通常硬盘空间奋斗,不断努力清理“表”,撰写许多查询,发现该表使用的硬盘空间. 本文介绍了如何查询系统表的空间使用情况,帮助数据库管理员识别正在使用最多的空间,以便存档旧 ...
- parentNode(返回指定节点的父节点。)
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...