相关疑难解决方法(0)

将Set <String>转换为List <String>的最简洁方法

我目前正在这样做:

Set<String> setOfTopicAuthors = ....

List<String> list = Arrays.asList( 
    setOfTopicAuthors.toArray( new String[0] ) );
Run Code Online (Sandbox Code Playgroud)

你能打败这个吗?

java collections list set jdk1.6

198
推荐指数
4
解决办法
21万
查看次数

.toArray(new MyClass [0])或.toArray(new MyClass [myList.size()])?

假设我有一个ArrayList

ArrayList<MyClass> myList;
Run Code Online (Sandbox Code Playgroud)

我想打电话给阿瑞,是否有使用性能的原因

MyClass[] arr = myList.toArray(new MyClass[myList.size()]);
Run Code Online (Sandbox Code Playgroud)

过度

MyClass[] arr = myList.toArray(new MyClass[0]);
Run Code Online (Sandbox Code Playgroud)

我更喜欢第二种风格,因为它不那么冗长,我认为编译器会确保空数组不会真正被创建,但我一直想知道这是不是真的.

当然,在99%的情况下,它不会以某种方式产生影响,但我希望在我的普通代码和优化的内部循环之间保持一致的风格......

java performance coding-style

147
推荐指数
4
解决办法
7万
查看次数

将对象列表转换为字符串数组

在我的主要课程中,我有: List<Person> allPeople = new ArrayList<>();

然后在类中我有一个方法,它返回所有人的String数组Id(Person有一个访问器方法getId()).

将列表转换为只有Ids为String的数组的最漂亮的方法是什么?

这是我目前的解决方案:

public String[] getAllId() {

    Object[] allPeopleArray = allPeople.toArray();
    String allId[] = new String[allPeople.size()];              

    for(int i=0; i<=allPeople.size()-1; i++){
        allId[i] = ((Person)allPeopleArray [i]).getId();                    
    }

    return allId;
}
Run Code Online (Sandbox Code Playgroud)

以上是有效的,但有没有"更好"的方法呢?

java

0
推荐指数
1
解决办法
66
查看次数

标签 统计

java ×3

coding-style ×1

collections ×1

jdk1.6 ×1

list ×1

performance ×1

set ×1