当前位置: 首页 > 面试题库 >

优化此ArrayList连接方法

梁丘逸仙
2023-03-14
问题内容

我已编写此代码来加入ArrayList元素:是否可以对其进行更多优化?还是有其他更好的方法?

public static String join(ArrayList list, char delim) {
        StringBuffer buf = new StringBuffer();
        for (int i = 0; i < list.size(); i++) {
            if (i != 0)
                buf.append(delim);
            buf.append((String) list.get(i));
        }
        return buf.toString();
    }

问题答案:

这就是著名的java.util.Collection团队的工作方式,所以我认为这应该很好;)

  421       /* Returns a string representation of this collection.  The string
  422        * representation consists of a list of the collection's elements in the
  423        * order they are returned by its iterator, enclosed in square brackets
  424        * (<tt>"[]"</tt>).  Adjacent elements are separated by the characters
  425        * <tt>", "</tt> (comma and space).  Elements are converted to strings as
  426        * by {@link String#valueOf(Object)}.
  427        *
  428        * @return a string representation of this collection
  429        */
  430       public String toString() {
  431           Iterator<E> i = iterator();
  432           if (! i.hasNext())
  433               return "[]";
  434   
  435           StringBuilder sb = new StringBuilder();
  436           sb.append('[');
  437           for (;;) {
  438               E e = i.next();
  439               sb.append(e == this ? "(this Collection)" : e);
  440               if (! i.hasNext())
  441                   return sb.append(']').toString();
  442               sb.append(", ");
  443           }

另外,这就是用达菲(Duffymo)的答案得到逗号分隔符的方法;)



 类似资料:
  • 该查询占用了tmp目录中的3GB+并最终超时。我这里少了点什么,怎样才能提高效率?我在这里的目标只是添加到现有查询中,以便从额外的表(j25_mt_cfvalues)中获取值。 : j25_mt_cats模式:

  • 优化MySQL左联接仍然有问题。该查询需要0.13秒才能完成,而下一个查询需要0.00秒(简化)。 对于该查询,我希望达到0.00左右。 解释输出: 现在,同样的简化查询运行良好(使用索引等,唯一的区别在于括号之间): 解释说:

  • 主要内容:1.哪些问题会引起接口性能问题,2.问题解决1.哪些问题会引起接口性能问题 数据库慢查询 深度分页问题 未加索引 索引失效 join过多 子查询过多 in中的值太多 单纯的数据量过大 业务逻辑复杂 循环调用 顺序调用 线程池设计不合理 锁设计不合理 机器问题(fullGC,机器重启,线程打满) 2.问题解决 2.1 慢查询(基于mysql) 深度分页 当分页所以深度不大的时候当然没问题,随着分页的深入 这个时候,mysql会查出来10000

  • 本文向大家介绍Oracle 表三种连接方式使用介绍(sql优化),包括了Oracle 表三种连接方式使用介绍(sql优化)的使用技巧和注意事项,需要的朋友参考一下 1. NESTED LOOP 对于被连接的数据子集较小的情况,nested loop连接是个较好的选择。nested loop就是扫描一个表,每读到一条记录,就根据索引去另一个表里面查找,没有索引一般就不会是 nested loops。

  • 我试图检查在哪里失去了准确表示大整数的能力。所以我写了这个小片段: 这段代码似乎适用于所有编译器,除了clang。Clang生成一个简单的无限循环。戈德博尔特。 这是允许的吗?如果是,这是QoI问题吗?

  • 本文向大家介绍Mysql慢查询优化方法及优化原则,包括了Mysql慢查询优化方法及优化原则的使用技巧和注意事项,需要的朋友参考一下 1、日期大小的比较,传到xml中的日期格式要符合'yyyy-MM-dd',这样才能走索引,如:'yyyy'改为'yyyy-MM-dd','yyyy-MM'改为'yyyy-MM-dd'【这样MYSQL会转换为日期类型】 2、条件语句中无论是等于、还是大于小于,WHERE