分组对象列表,其中每个对象是2个元素数组

问题描述

List<Object[]> values =  query.getResultList();
    //values = [obj1,obj2,obj3]
    //obj1 = "1","01";
    //obj2 = "1","02";
    //obj3 = "1:,"03";

Map<String,List<String>> resultMap = values.stream().collect(Collectors.groupingBy(???));

我需要将地图分组为-{“ 1”,[“ 01”,“ 02”,“ 03”]}

我看到的参考资料很少,但似乎没有任何作用。我应该用什么代替“ ???”? ?如果您还有其他需要,请发表评论。 预先感谢。

ref:

Shortcut for adding to List in a HashMap

groupingby list of arrays

解决方法

如果您的对象[]是字符串[]。我认为代码是这样的:

ssize_t find_short(const char *s)
{
    int n = strlen(s);
    int smallest = n;
    int counter = 0;
    for (int i = 0; i <= n; i++)
    {
        if (s[i] == ' ' || s[i] == '\0')
        {
            if (counter <= smallest)
            {
                smallest = (ssize_t) counter;
                // <-- not here
            }
            counter = 0;  //  < -- here
        }
        else
            counter ++;
    }
    return smallest;
}