`

面试题:一个存放字符串的ArrayList,请按照字符串的长度进行排序

    博客分类:
  • Java
阅读更多
private static ArrayList<String> sortList(ArrayList<String> list) {
    /* 返回的list */
    ArrayList<String> retList = new ArrayList<String>();
    /* 当前list的元素个数 */
    int size = list.size();
    /* list的最大长度(while循环使用) */
    int listMaxSize = size;
    /* 当返回的list的 长度和参数list的长度不一致的时候,循环 */
    while (retList.size() < listMaxSize) {
        /* 长度最大的字符串的长度 */
        int maxLen = 0;
        /* 长度最大的index */
        int maxIndex = 0;
        /* 循环找出长度最大的字符串 */
        for (int i = 0; i < size; i++) {
            /* 当前字符串 */
            String str = list.get(i);
            /* 当前字符串的长度(null的时候是0) */
            int len = 0;
            if (str != null) {
                len = str.length();
            }
            /* 如果当前字符串的长度比设定的maxLen大,则把当前字符串设定为最大*/
            if (len > maxLen) {
                maxLen = len;
                maxIndex = i;
            }
        }
        /* 结束内层循环,把最大的字符串追加到retList中 */
        retList.add(list.get(maxIndex));
        /* 把list中最大的那个元素remove掉 */
        list.remove(maxIndex);
        /* 元素-1 */
        size--;
    }
    return retList;
}
分享到:
评论
1 楼 sunlz19891215 2013-10-30  
楼主厉害啊!很有用的

相关推荐

    字符串排序

    字符串排序是指按照一定的规则对字符串中的字符进行重新排列的过程。这种排序可以是字母顺序、字典序或自定义的顺序等。在计算机科学中,字符串排序是数据处理、文本分析等场景中常见的需求。 #### 二、Java字符串...

    计算机和JAVA 面试题大全

    - 面试题:如何反转一个字符串? 8. **输入/输出流** - 理解I/O流的分类,如字节流和字符流。 - 面试题:解释什么是缓冲流,它有何优势? 9. **多线程** - 描述线程的创建方式,包括实现Runnable接口和继承...

    面试题:Java基础面试题源码资料.zip

    - **继承**:一个类可以继承另一个类的特性,实现代码重用。 - **多态**:同一种行为可以有不同的表现形式,如方法重载和覆盖。 - **抽象**:抽象类和接口用于定义行为规范,实现抽象和具体实现的分离。 3. **...

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    实现一个拷贝文件的类使用字节流还是字符串.mp4 │ Java面试题13.线程的实现方式 怎么启动线程怎么区分线程.mp4 │ Java面试题14.线程并发库和线程池的作用?.mp4 │ Java面试题15.设计模式和常用的设计模式.mp4 │ ...

    java初级面试题

    【Java初级面试题详解】 1. **集合框架的理解** - 集合(Collection)在Java中是一种用于存储对象的数据结构,具有可变长度,允许存放不同类型的对象,并提供了批量操作元素的方法。Collection接口是所有集合类的...

    2021年最新java面试题--视频讲解(内部培训84个知识点超详细).rar

    实现一个拷贝文件的工具类要使用字节流还是字符串 Java面试题13.线程的的实现方式?怎么启动线程?怎么区分线程? Java面试题14.线程并发库和线程池的作用 Java面试题15.设计模式和常用的设计模式 Java面试题16....

    黑马程序员入学面试题

    - `String str=""`:表示`str`变量指向一个空字符串对象。 #### 26. 使用运算符"=="和方法equals()进行比较对象的区别? - `==`:比较两个对象的引用是否相等。 - `equals()`:比较两个对象的内容是否相等。 #### ...

    2019互联网面试题第2季 (2).pdf

    ### 2019互联网面试题第2季之Java知识点详解 #### 一、Java基础知识:String、StringBuilder与StringBuffer的区别 **1.1 运行速度** 在运行速度方面,`StringBuilder` &gt; `StringBuffer` &gt; `String`。 - **String...

    2019蚂蚁金服面试题及答案

    1. 字符串常量池:JVM 为了提高性能和减少内存开销,在实例化字符串常量时进行了优化,字符串类维护了一个字符串池,当创建字符串常量时会首先检查字符串常量池,如果有此字符串值会返回此字符串值得引用,否则创建...

    2019互联网面试题第2季,互联网面试题及答案,Java

    "2019互联网面试题第2季"聚焦了这一年度的重要面试趋势和热门问题,旨在帮助求职者更好地准备并理解面试官可能提出的各种问题。这份资料可能包含一系列的面试题目、解答以及相关思维导图,帮助求职者系统地梳理和...

    几道亚马逊面试题参考答案

    5. CreateEquationAndPrint.java:这可能是一个涉及字符串处理和数学逻辑的问题,可能需要根据给定的数据创建数学方程式并打印出来,可能涉及到字符串拼接、解析和格式化。 通过分析这些题目,我们可以看出亚马逊...

    淘宝java面试题.pdf

    字符串常量池中存储了所有的字符串常量,当创建一个新字符串时,如果已有相同内容的字符串存在,就会直接从常量池中获取,节省内存空间。 2. `StringBuffer`:`StringBuffer`是线程安全的可变字符序列,它允许在多...

    最全的当前主流的JAVA面试题:

    2. **继承**:继承是面向对象的特性,允许一个类(子类)从另一个类(父类)继承属性和行为。这减少了代码重复,提高了代码的组织性。子类可以覆盖或扩展父类的方法,实现特定功能。 3. **封装**:封装是隐藏对象的...

    java面试题集,微软面试题集,IBM面试题集,MBA面试题集

    常见的面试题可能涉及排序算法(如快速排序、归并排序)、查找算法(二分查找、哈希查找)、图论问题、字符串处理、内存管理以及软件工程原则。此外,面试者还需要熟悉微软的开发工具,如Visual Studio,以及.NET...

    Java后端面试题

    8. **源文件中的多个类**:一个`.java`文件中可以包含多个类,但只能有一个公共类,且文件名必须与该公共类名相同。 9. **排序方法**:常见的排序算法包括冒泡排序、插入排序、快速排序等。 10. **Overload和...

    JAVA面试题集(150道经典面试题)

    给定的代码片段提供了一个简单的示例,演示如何将一个字符串按照指定的长度进行分割。具体步骤如下: ```java public String[] split(String str, int chars) { int n = (str.length() + chars - 1) / chars; // ...

    java面试题题库详解

    ### Java面试题题库详解 #### 1. Java基本概念:String是什么?它与其它类型有何不同? **知识点概述:** - **String 类型的基本理解:** 在 Java 中,`String` 是一个不可变的对象,它代表了字符序列。 - **与...

    java面试题集锦

    - **知识点概述**:此题考察如何编写一个函数,用于根据指定的字符长度来分割字符串。 - **应用场景**:在处理大量文本数据时,可能需要按照特定长度来分割字符串以便进一步处理。 - **解答要点**: - 使用 `...

    面试题和算法

    一、Java面试题 1. **Java基础**:Java语言的基础知识是任何面试的起点,包括变量、数据类型、运算符、控制结构(如if-else,switch-case,for,while,do-while)、类、对象、封装、继承、多态等。理解这些概念并...

    阿里java常考面试题及汇总答案.docx

    - StringBuffer和StringBuilder都是可变的字符串类,它们允许在原有字符串基础上进行修改。StringBuffer是线程安全的,适合多线程环境;StringBuilder则没有线程安全机制,但在单线程环境下性能优于StringBuffer。 ...

Global site tag (gtag.js) - Google Analytics