gpt4 book ai didi

java - 如何使用 java 将集合转换为 scala

转载 作者:搜寻专家 更新时间:2023-11-01 02:28:45 26 4
gpt4 key购买 nike

下面的代码转换类型为 List<TestObj> 的列表到 List<List<String>> 类型的列表其中类型为 List<List<String>> 的每个列表元素是一个字符串列表大小 1。这是一种非常迭代的方法,可以将其转换为更具功能性的方法吗?使用scala的方法?一个可能的解决方案:List<String> 上的模式匹配并创建一个新列表每个头元素?

下面java代码的输出:

strVal is 1 
New list
strVal is 2
New list


public class Driver {

public static void main (String args[]){

/**
* Setup the test list data
*/
List<String> l = new ArrayList<String>();
l.add("1");
l.add("2");
TestObj t = new TestObj();
t.setTestList(l);
t.setName("test");
List<TestObj> tList = new ArrayList<TestObj>();
tList.add(t);

/**
* Convert the list to a new data structure
*/
List<List<String>> l3 = new ArrayList<List<String>>();
List<String> l2 = new ArrayList<String>();
int counter = 0;
for(TestObj tListElement : tList){
if(tListElement.getName().equalsIgnoreCase("test")){
List<String> lvo = tListElement.getTestList();
for(String lv : lvo){
l2.add(lv);
++counter;
if(counter == 1){
counter = 1;
l3.add(l2);
l2 = new ArrayList<String>();
counter = 0;
}
}
}
}

/**
* Output the values of the new data structure
*/
for(List<String> listVals : l3){
for(String strVal : listVals){
System.out.println("strVal is "+strVal);
}
System.out.println("New list");
}
}
}

import java.util.List;


public class TestObj {

private String name;
private List<String> testList;

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<String> getTestList() {
return testList;
}
public void setTestList(List<String> testList) {
this.testList = testList;
}

}

最佳答案

case class TestObj(name: String, testList: Seq[String])

object Driver extends App {

// Setup the test list data
val tList = Seq(TestObj("test", Seq("1", "2")))

// Convert the list to a new data structure
val l3 = for {
t <- tList
if t.name equalsIgnoreCase "test"
lv <- t.testList
} yield Seq(lv)

// Output the values of the new data structure
for (listVals <- l3) {
for (strVal <- listVals) {
println("strval is " + strVal)
}
println("New list")
}

}

关于java - 如何使用 java 将集合转换为 scala,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14760915/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com