import
java.util.ArrayList;
class
Car {
public
String name;
public
ArrayList<String> colors;
public
Car(String name, ArrayList<String> colors)
{
this
.name = name;
this
.colors = colors;
}
}
public
class
Main {
public
static
void
main(String[] args)
{
ArrayList<String> hondaColors =
new
ArrayList<>();
hondaColors.add(
"Red"
);
hondaColors.add(
"Blue"
);
Car honda =
new
Car(
"Honda"
, hondaColors);
Car deepcopyHonda =
new
Car(
honda.name,
new
ArrayList<>(honda.colors));
deepcopyHonda.colors.add(
"Green"
);
System.out.print(
"Deepcopy: "
);
for
(String color : deepcopyHonda.colors) {
System.out.print(color +
" "
);
}
System.out.println(
"\nOriginal: "
);
for
(String color : honda.colors) {
System.out.print(color +
" "
);
}
System.out.println();
Car copyHonda = honda;
copyHonda.colors.add(
"Green"
);
System.out.print(
"Shallow Copy: "
);
for
(String color : copyHonda.colors) {
System.out.print(color +
" "
);
}
System.out.println(
"\nOriginal: "
);
for
(String color : honda.colors) {
System.out.print(color +
" "
);
}
System.out.println();
}
}