Подтвердить что ты не робот

Преобразование ArrayList в массив в java

У меня есть ArrayList со значениями, такими как "abcd # xyz" и "mnop # qrs". Я хочу преобразовать его в массив, а затем разделить его С# в качестве разделителя и иметь abcd, mnop в массиве и xyz, qrs в другом массиве. Я попробовал следующий код:

String dsf[] = new String[al.size()];              
for(int i =0;i<al.size();i++){
  dsf[i] = al.get(i);
}

Но он не смог сказать "Ljava.lang.String; @57ba57ba"

4b9b3361

Ответ 1

Вам не нужно изобретать колесо, здесь метод toArray():

String []dsf = new String[al.size()];
al.toArray(dsf);

Ответ 2

List<String> list=new ArrayList<String>();
list.add("sravan");
list.add("vasu");
list.add("raki");
String names[]=list.toArray(new String[list.size()])

Ответ 3

List<String> list=new ArrayList<String>();
list.add("sravan");
list.add("vasu");
list.add("raki"); 
String names[]=list.toArray(new String[0]);

если вы видите последнюю строку (новая String [0]), вам не нужно указывать размер, есть время, когда мы не знаем длину списка, поэтому начинаем с того, чтобы дать ему 0, построенный массив изменит размер.

Ответ 4

String[] values = new String[arrayList.size()];
        for (int i = 0; i < arrayList.size(); i++) {
            values[i] = arrayList.get(i).type;
        }

Ответ 5

То, что вы сделали с итерацией, не из того, что я могу сделать из этого на основе вопроса. Он дает вам действительный массив объектов String. Как упоминалось в другом ответе, однако проще использовать метод toArray(), доступный для объекта ArrayList = > http://docs.oracle.com/javase/1.5.0/docs/api/java/util/ArrayList.html#toArray%28%29

Просто примечание. Если вы правильно выполните итерацию своего массива dsf и распечатаете каждый элемент самостоятельно, вы получите действительный результат. Вот так:

for(String str : dsf){
   System.out.println(str);
}

То, что вы, вероятно, пытались сделать, это сразу же напечатать полный объект Array, поскольку это даст адрес памяти объекта, как вы получили в своем вопросе. Если вы видите такой вывод, вам нужно предоставить метод toString() для объекта, который вы печатаете.

Ответ 6

package com.v4common.shared.beans.audittrail;

import java.util.ArrayList;
import java.util.List;

public class test1 {
    public static void main(String arg[]){
        List<String> list = new ArrayList<String>();
        list.add("abcd#xyz");
        list.add("mnop#qrs");

        Object[] s = list.toArray();
        String[] s1= new String[list.size()];
        String[] s2= new String[list.size()];

        for(int i=0;i<s.length;i++){
            if(s[i] instanceof String){
                String temp = (String)s[i];
                if(temp.contains("#")){
                    String[] tempString = temp.split("#");
                    for(int j=0;j<tempString.length;j++) {
                        s1[i] = tempString[0];
                        s2[i] = tempString[1];
                    }

                }
            }   
        }
        System.out.println(s1.length);
        System.out.println(s2.length);
        System.out.println(s1[0]);
        System.out.println(s1[1]);
    }
}

Ответ 7

Вот решение для данного сценария -

List<String>ls = new ArrayList<String>();
    ls.add("dfsa#FSDfsd");
    ls.add("dfsdaor#ooiui");
    String[] firstArray = new String[ls.size()];    
 firstArray =ls.toArray(firstArray);
String[] secondArray = new String[ls.size()];
for(int i=0;i<ls.size();i++){
secondArray[i]=firstArray[i].split("#")[0];
firstArray[i]=firstArray[i].split("#")[1];
} 

Ответ 8

import java.util.*;
public class arrayList {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        ArrayList<String > x=new ArrayList<>();
        //inserting element
        x.add(sc.next());
        x.add(sc.next());
        x.add(sc.next());
        x.add(sc.next());
        x.add(sc.next());
         //to show element
         System.out.println(x);
        //converting arraylist to stringarray
         String[]a=x.toArray(new String[x.size()]);
          for(String s:a)
           System.out.print(s+" ");
  }

}

Ответ 9

Это правильный ответ, который вы хотите, и это решение, которое я запускал самостоятельно на netbeans

ArrayList a=new ArrayList();
a.add(1);
a.add(3);
a.add(4);
a.add(5);
a.add(8);
a.add(12);

int b[]= new int [6];
        Integer m[] = new Integer[a.size()];//***Very important conversion to array*****
        m=(Integer[]) a.toArray(m);
for(int i=0;i<a.size();i++)
{
    b[i]=m[i]; 
    System.out.println(b[i]);
}   
    System.out.println(a.size());

Ответ 10

Это можно сделать с помощью потока:

List<String> stringList = Arrays.asList("abc#bcd", "mno#pqr");
    List<String[]> objects = stringList.stream()
                                       .map(s -> s.split("#"))
                                       .collect(Collectors.toList());

Возвращаемое значение будет массивом разделенной строки. Это позволяет избежать преобразования массива в массив и выполнения операции.