一道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 数据保证: 保 ...
随机推荐
- eclipse导入maven web 项目 但是不显示成web 项目
http://blog.csdn.net/jun55xiu/article/details/9028403 1:导入Maven webapp项目(以extdirectspring-demo为例): i ...
- lintcode :Ugly Numbers 丑数
题目 丑数 设计一个算法,找出只含素因子3,5,7 的第 k 大的数. 符合条件的数如:3,5,7,9,15...... 样例 如果k=4, 返回 9 挑战 要求时间复杂度为O(nlogn)或者O(n ...
- posix 线程(一):线程模型、pthread 系列函数 和 简单多线程服务器端程序
posix 线程(一):线程模型.pthread 系列函数 和 简单多线程服务器端程序 一.线程有3种模型,分别是N:1用户线程模型,1:1核心线程模型和N:M混合线程模型,posix thread属 ...
- ORA-12571 : TNS : 包写入程序失败
错误原因 解决方案 修改D:/oracle/ora92/network/admin目录下sqlnet.ora,将”NAMES.DEFAULT_DOMAIN =” 这一行用#注释掉,将“SQLNET.A ...
- linq 分类
linq技术为我们开发人员提供了五个比较实用的数据访问类型: LinQ to Object:可以允许对内存中的类对象查询. LinQ to DataSet:可以对内存中的DataSet缓存数据,执行数 ...
- SoapUI test WCF
http://blogs.msdn.com/b/nabeelp/archive/2008/03/07/obscure-error-addressfilter-mismatch-at-the-endpo ...
- 自定义tab bar控件 学习资料
http://blog.csdn.net/zoeice/article/details/8068671 import java.util.Vector; import android.content. ...
- spring事务传播机制实例讲解
http://kingj.iteye.com/blog/1680350 spring事务传播机制实例讲解 博客分类: spring java历险 天温习spring的事务处理机制,总结 ...
- 面试题_48_to_65_Java 集合框架的面试题
这部分也包含数据结构.算法及数组的面试问题 48) List.Set.Map 和 Queue 之间的区别(答案)List 是一个有序集合,允许元素重复.它的某些实现可以提供基于下标值的常量访问时间,但 ...
- tomcat web.xml配置
关于Tomcat 中 web.xml 文件的配置问题: 1.下面的配置是合法的 <servlet> <servlet-name>test</serv ...