Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 转换列表<;列表<;字符串>&燃气轮机;到ArrayList<;字符串>;在Android中_Java_Android_List_Arraylist_Type Conversion - Fatal编程技术网

Java 转换列表<;列表<;字符串>&燃气轮机;到ArrayList<;字符串>;在Android中

Java 转换列表<;列表<;字符串>&燃气轮机;到ArrayList<;字符串>;在Android中,java,android,list,arraylist,type-conversion,Java,Android,List,Arraylist,Type Conversion,我想将它们转换为ArrayList,然后存储它们。之后,我必须将它们转换为旧值。你有什么建议吗?提前谢谢 public List<List<String>> phones = new ArrayList<>(); public List<List<Restaurant.Menu>> menus = new ArrayList<>(); public ArrayList<String> phones = ? p

我想将它们转换为ArrayList,然后存储它们。之后,我必须将它们转换为旧值。你有什么建议吗?提前谢谢

public List<List<String>> phones = new ArrayList<>();
public List<List<Restaurant.Menu>> menus = new ArrayList<>(); 

public ArrayList<String> phones = ?
public ArrayList<String> menus = ?
public List phones=new ArrayList();
公共列表菜单=新建ArrayList();
公共阵列列表电话=?
公共阵列列表菜单=?

对于第一个场景,您可以将电话嵌套列表展平为单个列表,然后收集到
阵列列表中

ArrayList<String> result = 
                  phones.stream()
                        .flatMap(Collection::stream)
                        .collect(Collectors.toCollection(ArrayList::new));
如果需要从菜单中提取某些属性,请按以下方式执行:

ArrayList<String> menuResult = 
                  menus.stream()
                       .flatMap(Collection::stream)
                       .map(Menu::toString)
                       .collect(Collectors.toCollection(ArrayList::new));
ArrayList<String> menuResult = 
                  menus.stream()
                       .flatMap(Collection::stream)
                       .map(Menu::getName)
                       .collect(Collectors.toCollection(ArrayList::new));
ArrayList菜单结果=
menus.stream()
.flatMap(集合::流)
.map(菜单::getName)
.collect(收集器.toCollection(ArrayList::new));
如果您的API级别不支持这些功能,则可以使用:

// flatten List<List<String>> to ArrayList<String>
ArrayList<String> phonesAccumulator = new ArrayList<>();
for (List<String> temp : phones) {
     phonesAccumulator.addAll(temp);
}

// flatten List<List<Restaurant.Menu>> to ArrayList<String>
ArrayList<String> menusAccumulator = new ArrayList<>();
for (List<Restaurant.Menu> temp : menus) {
    for(Restaurant.Menu m : temp){
       menusAccumulator.add(m.toString());
       // or m.getName();
    }
}
//将列表展平到ArrayList
ArrayList PhonesAccumerator=新的ArrayList();
用于(列表临时:电话){
PhonesAccumerator.addAll(临时);
}
//将列表展平到ArrayList
ArrayList menusAccumulator=新ArrayList();
用于(列表临时:菜单){
对于(餐厅菜单m:temp){
menusAccumulator.add(m.toString());
//或m.getName();
}
}

如果您使用的是Java 8,flatMap在以下方面可能很有用:

ArrayList<String> phoneList = phones.stream()
                                        .flatMap(List::stream)
                                        .collect(Collectors.toCollection(ArrayList::new));
ArrayList phoneList=phones.stream()
.flatMap(列表::流)
.collect(收集器.toCollection(ArrayList::new));

我正在证明我的决心,如下所述,因此您可以根据自己的意愿进行更改-

    List<String> nonvegList = new ArrayList<String>();
    nonvegList.add("Mutton Keema");
    nonvegList.add("Chicken Keema");
    nonvegList.add("Korma Veg Keema");
    nonvegList.add("Pulaav Biryaani");
    nonvegList.add("Mutton Biryaani");
    nonvegList.add("Chicken Biryaani");

    List<List<String>> menuList = new ArrayList<List<String>>();
    menuList.add(nonvegList);

    ArrayList<String> resultList = new ArrayList<String>(menuList.get(0));
    System.out.println(resultList);
List noneglist=newarraylist();
添加(“羊肉基玛”);
添加(“鸡肉基玛”);
添加(“Korma Veg Keema”);
添加(“Pulav Biryaani”);
添加(“Biryaani羊肉”);
添加(“Biryaani鸡”);
List menuList=new ArrayList();
menuList.add(非段列表);
ArrayList resultList=新的ArrayList(menuList.get(0));
System.out.println(结果列表);
甜美、简单且易于理解的格式,在Java 6+之后兼容


希望这能对您有所帮助,谢谢。

我用gson解决了这个问题。我分享一个样本

Gson gson = new Gson();
ArrayList<String> gsonString = new ArrayList<>();
for(int i=0; i<restaurants.size(); i++)
        gsonString.add(gson.toJson(restaurants.get(i)));
// Store it
tinydb.putListString("tinyRestaurant",gsonString);
Gson-Gson=new-Gson();
ArrayList gsonString=新的ArrayList();

对于(int i=0;i您使用java-8吗?那么您需要平放列表吗?我使用的是android。java可以帮助实现这一点。任何解决方案都可以帮助:)我想转换列表我想您为每个列表(行)创建新的ArrayList。如果列表太长,这将是一个问题。看,你已经有了一个列表,我刚刚给出了7行代码供你理解,我也可以用一行来写这类东西,所以在这里你有许多菜单列表,如蔬菜列表、非蔬菜列表、冰淇淋列表、零食列表等添加到你的菜单列表(列表)您可以很容易地声明arrayList对象,并在初始化时放入values集合。对不起,您可以编辑您的帖子并添加代码吗?我的头脑有点混乱。如何一次获取所有值。在将列表集合转换为类ArrayList之前,JVM首先从ArrayList构造函数部分中的现有列表对象初始化ArrayList,从而初始化resultList变量,这是可能的,因为集合是类型list和ArrayList的超类,我想我已经解释过了,如果发现有帮助的话,请将此标记为答案。它可以工作,但在android中会出现api级别的问题。谢谢你们的第一部分。能否将ArrayList转换为List
List menusAccumulator=new ArrayList();对于(List temp:menus){List tempcumulator=new ArrayList();对于(Restaurant.Menu m:temp){tempcumulator.add(m.toString());//或m.getName();}menusacumulator.add(tempcumulator);}
?抱歉,此代码中存在问题。我想在这次将menusAccumulator转换为列表菜单;
Gson gson = new Gson();
for(int i=0; i<tinydb.getListString("tinyRestaurant").size(); i++)
            restaurants.add(gson.fromJson(tinydb.getListString("tinyRestaurant").get(i), Restaurant.class));