小编shm*_*sel的帖子

将ArrayList <String>转换为java.util.List

我无法绕过一个概念.我正在尝试将a转换ArrayList<String>List(或List<String>),但我一直遇到强制转换异常.是的,我看到了将字符串数组转换为列表的代码,但我觉得这是一个不同的场景.我的相关代码在这里,请注意声明是因为我使用GWT,因此必须声明一些东西为静态和最终...

private static List<String> values;
Ioma.dataservice.getPendingOrders(new AsyncCallback<ArrayList<Order>>(){
    @Override
    public void onFailure(Throwable caught) {
        // TODO Auto-generated method stub
    }
    @Override
    public void onSuccess(ArrayList<Order> result) {
        ArrayList<String> orderNumbers = new ArrayList<String>();               
        //problem here, cannot cast arraylist<string> to list string for some reason? idk. SO it maybe?
        for(int i=0;i<result.size();i++){
            System.out.println("ordernumber: " + result.get(i).getOrderNumber());
            System.out.println("arraysize: " + result.size());
            orderNumbers.add(Integer.toString(result.get(i).getOrderNumber()));                 
        }
        for (int i=0; i<orderNumbers.size();i++){
            values.add(orderNumbers.get(i));
        }
        cellList.setRowData(values);
    }

});
Run Code Online (Sandbox Code Playgroud)

基本上我正在尝试创建一个想要List作为输入的cellList.我从数据库查询中获取了一个订单数组列表,然后迭代以获取订单号,然后将其放入arrayList中,然后我想将其转换为List以在cellList中使用.有人可以解释为什么我不能这样做以及适当的方法应该是什么?

java arrays gwt arraylist

4
推荐指数
2
解决办法
6万
查看次数

java8 Collectors.toMap()限制?

我试图用java8的Collectors.toMapStreamZipEntry.它可能不是最好的主意,因为在处理过程中可能会出现异常,但我想它应该是可能的.

我现在得到一个编译错误(类型推理引擎,我猜),我不明白.

这是一些提取的演示代码:

import java.io.IOException;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

public class TestMapCollector {

    private static class MyObject {
    }

    public static void main(String[] argv) throws IOException {
        try (ZipFile zipFile = new ZipFile("test")) {
            Map<String, MyObject> result = zipFile.stream()
                    .map(ZipEntry::getName)
                    .collect(Collectors.toMap(f -> "test", f -> new MyObject()));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

此代码按原样构建,但如果您只是对该.map(ZipEntry::getName)行进行注释,则不会构建该代码.好像toMap收集器可以工作,如果输入是一个流String但不是输入是一个流ZipEntry

作为参考,这是构建错误的开始,它非常模糊:

no suitable method found for collect(Collector<Object,CAP#1,Map<String,MyObject>>)
    method Stream.<R#1>collect(Supplier<R#1>,BiConsumer<R#1,? super CAP#2>,BiConsumer<R#1,R#1>) …
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

4
推荐指数
1
解决办法
6061
查看次数

Java Stream Api内部加入两个列表

如何使用Java Stream Api替换此代码?

for (Book book : Books.getAllBooks()) {
        for (SearchResult searchResult : searchResultList) {
          if (searchResult.getTableName().replace("attr_", "") .equals(book.getTableName())) {
            bookList.add(book);
          }
        }
      }
Run Code Online (Sandbox Code Playgroud)

java java-8

4
推荐指数
2
解决办法
3675
查看次数

从对象中删除属性

我得到了一个从 db 调用返回的列表。

List<employee> list = empolyeeRepository.findByEmployeeId(id);
Run Code Online (Sandbox Code Playgroud)

列表包含员工 pojo 类对象。我想删除一个属性,让我们在从休息电话返回时说“员工银行账户号”。

@RequestMapping(value = "/employeeInformation/{id}",
     method = RequestMethod.GET,
     produces = MediaType.APPLICATION_JSON_VALUE)
@Timed
public List<Employee> getEmployeeInformation(@PathVariable("id") String id) throws Exception {
            return empolyeeRepository.findByEmployeeId(id);
        }
Run Code Online (Sandbox Code Playgroud)

是否有任何注释或良好做法可以做到这一点?

java hibernate spring-boot

4
推荐指数
1
解决办法
2万
查看次数

JUnit中的实例变量

我有一个类,它将元素添加到ArrayList(实例变量).当我使用Junit为类编写测试用例时,我只对类初始化一次.我在两个测试用例中都做了同样的工作.

public class Solution {

    List<String> list = new ArrayList<String>();

    public void modifyList() {
        list.add("A");
        list.add("B");
        list.add("C");
    }
}
Run Code Online (Sandbox Code Playgroud)

SolutionTest.java

public class TestSolution {

    Solution sol = new Solution();

    @Test
    public void testModifyList1() {
        sol.modifyList();
        Assert.assertEquals(3, sol.list.size());
        System.out.println(sol.list);
    }

    @Test
    public void testModifyList2() {
        sol.modifyList();
        Assert.assertEquals(3, sol.list.size());
        System.out.println(sol.list);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我在两个测试用例中打印列表时,为什么列表在第二个测试用例中打印时不返回[A, B, C, A, B, C].它为什么只是回归[A, B, C].我的理解是,该类只初始化一次,因此列表只有一个副本,应该修改两次.但是,当我打印列表时,它只打印从该测试用例修改的值.有人可以解释一下这种行为吗?

当我在两个不同的测试用例中对同一个对象调用相同的方法时,为什么列表不会被更新两次?

java junit unit-testing list

4
推荐指数
1
解决办法
2991
查看次数

存储和访问大量常量的最佳方式

例如,在制作游戏时,我有很多想要存储的常量。我还希望很多类能够访问这些常量。存储和访问所有这些值的最佳方式是什么?目前,我只是将最终值存储在一个单独的类中,然后创建存储常量的类的实例。要访问这些值,我会执行“objectName.nameOfConstant”。所以我的问题是,它们是存储所有这些常量的正式方法还是更好的方法。

java class constants

4
推荐指数
1
解决办法
3464
查看次数

Java 8 从集合中的特定列过滤值

我有一个List<DataBean>bean定义如下,

private int id;
private int activityId;
private String info;
private int answerCode;
private String otherData;
Run Code Online (Sandbox Code Playgroud)

还有另一个带有不同 bean 的 List List<Answer>,其 bean 如下所示:

   private int id;
   private int code;
Run Code Online (Sandbox Code Playgroud)

我需要找到所有的答案List<Answer>,其code包含在列List<DataBean>.answerCode

例子:

List<DataBean> 包含

id  activityId  info answerCode
1   1           ..   144
1   1           ..   153
1   2           ..   160
1   3           ..   177
Run Code Online (Sandbox Code Playgroud)

List<Answer> 包含

id  code
--------
1   160
2   161
Run Code Online (Sandbox Code Playgroud)

因此,我的结果List<Answer>只有一个: 1 160.

java

4
推荐指数
1
解决办法
1180
查看次数

Java 8:将2个字符串列表合并到Map中

我有以下内容:

List<String> keys
List<String> values
Run Code Online (Sandbox Code Playgroud)

我想将这两个列表映射到Map<String, String>使用Java 8 Streams.列表具有相同的大小并以相同的方式排序.

我尝试用以下方法映射这两个

Map<String, String> result= keys.stream().
        collect(Collectors.toMap(keys::get, values::get));
Run Code Online (Sandbox Code Playgroud)

但这根本不起作用 - 我怎么能这样做呢?提前致谢 :)

java list hashmap java-8 java-stream

3
推荐指数
1
解决办法
1012
查看次数

Java流更改列表中地图的键

是否可以使用java流来更改列表中地图的键,即给出地图的原始列表是:

List<Map<String, String>> list = new ArrayList<Map<String, String>>() {{
            add(new HashMap<String, String>() {{
                put("id", "1");
                put("display", "foo");
            }});
            add(new HashMap<String, String>() {{
                put("id", "2");
                put("display", "bar");
            }});
        }};

        System.out.println(list.toString());
Run Code Online (Sandbox Code Playgroud)

从上面的列表(输出演示)

[{display=foo, id=1}, {display=bar, id=2}]
Run Code Online (Sandbox Code Playgroud)

到地图列表:

[{sample=foo, sample_id=1}, {sample=bar, sample_id=2}]
Run Code Online (Sandbox Code Playgroud)

基本上,将键“id”更改为“sample_id”,并将“display”更改为“sample”。

java java-stream

3
推荐指数
1
解决办法
2万
查看次数

如何从 Java 8 中的有限流构建无限重复流?

如何将有限的事Stream<Thing>物流变成无限重复的事物流?

java java-stream

3
推荐指数
1
解决办法
728
查看次数