/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
    public static void main(String[] args) {
        String[][] array = Arrays.stream(("John,Car,4324,4944\n"
                + "Jill & Peter,Bus,5433,6544\n"
                + "Greg,Bus,9384,4329\n"
                + "Jill & Greg and Bill,Truck,3213,4324\n"
                + "Mike,Bus,4324,3424\n"
                + "Greg & Lisa & John,bus,4324,4334").split("\n"))
                .map(s -> s.split(","))
                .toArray(String[][]::new);
        List<MyObject> result = Arrays.stream(array)
                .map(t -> Arrays.stream(t[0].split("\\s(&|and)\\s"))
                .map(v -> new MyObject(v, t[1], Integer.valueOf(t[2]), Integer.valueOf(t[3])))
                .collect(Collectors.toList())
                ).flatMap(List::stream)
                .collect(Collectors.toList());

        result.forEach(System.out::println);
    }
}

class MyObject {

    private String s1;
    private String s2;
    private Integer i1;
    private Integer i2;

    public MyObject(String s1, String s2, Integer i1, Integer i2) {
        this.s1 = s1;
        this.s2 = s2;
        this.i1 = i1;
        this.i2 = i2;
    }

    //getters and setters
    @Override
    public String toString() {
        return "MyObject{" + "s1=" + s1 + ", s2=" + s2 + ", i1=" + i1 + ", i2=" + i2 + '}';
    }

}
