如何仅使用 Java 7(及以下)将原始数据类型列表转换为列表 <String>
How to convert List of raw data type to List<String> using Java 7(and below) only
有很多关于类似主题的质量检查帖子,例如:
Java: Converting lists of one element type to a list of another type
How to transform List to another List
但是,他们都使用了一些额外的库,这对我来说是不合适的。我想找到仅使用 Java 7(及以下)库的最佳解决方案。
假设我们有:
List list = new LinkedList();
list.add(2);
list.add("Mike");
list.add("John");
list.add(11);
transformer(list); // transform List to List<String>
list.get(0).toLowerCase();
如何实现void transform(List list)
方法?
您可以检查列表的内容并调用 String.valueOf(Object)
每一个:
List<String> result = new LinkedList<>();
for (Object o : list) {
result.add(String.valueOf(o));
}
编辑:
这也可以通过 ListIterator
内联完成,如果您愿意的话:
ListIterator iter = list.listIterator();
while (iter.hasNext()) {
iter.set(String.valueOf(iter.next()));
}
您需要 return 一个新的 List<String>
,然后分配它。迭代输入 List
,并在每个元素上调用 toString()
- 将其添加到新的 List
以进行 returning。像,
public static List<String> transformer(List list) {
List<String> al = new ArrayList<String>();
Iterator iter = list.iterator();
while (iter.hasNext()) {
al.add(iter.next().toString());
}
return al;
}
那你可以这样称呼它
List<String> stringList = transformer(list);
stringList.get(0).toLowerCase();
你做不到你需要的。但是,您可以通过编写类似 stringList.get(0).toLowerCase();
的内容来访问 String 方法
有很多关于类似主题的质量检查帖子,例如:
Java: Converting lists of one element type to a list of another type
How to transform List to another List
但是,他们都使用了一些额外的库,这对我来说是不合适的。我想找到仅使用 Java 7(及以下)库的最佳解决方案。
假设我们有:
List list = new LinkedList();
list.add(2);
list.add("Mike");
list.add("John");
list.add(11);
transformer(list); // transform List to List<String>
list.get(0).toLowerCase();
如何实现void transform(List list)
方法?
您可以检查列表的内容并调用 String.valueOf(Object)
每一个:
List<String> result = new LinkedList<>();
for (Object o : list) {
result.add(String.valueOf(o));
}
编辑:
这也可以通过 ListIterator
内联完成,如果您愿意的话:
ListIterator iter = list.listIterator();
while (iter.hasNext()) {
iter.set(String.valueOf(iter.next()));
}
您需要 return 一个新的 List<String>
,然后分配它。迭代输入 List
,并在每个元素上调用 toString()
- 将其添加到新的 List
以进行 returning。像,
public static List<String> transformer(List list) {
List<String> al = new ArrayList<String>();
Iterator iter = list.iterator();
while (iter.hasNext()) {
al.add(iter.next().toString());
}
return al;
}
那你可以这样称呼它
List<String> stringList = transformer(list);
stringList.get(0).toLowerCase();
你做不到你需要的。但是,您可以通过编写类似 stringList.get(0).toLowerCase();