import java.util.ArrayList ;
import java.util.List ;
class Icecream {
private boolean hasChocolate;
private double fatPercentage;
public Icecream
( String name,
boolean hasChocolate,
double fatPercentage
) { this .name = name;
this .hasChocolate = hasChocolate;
this .fatPercentage = fatPercentage;
}
return name;
}
public boolean hasChocolate( ) {
return hasChocolate;
}
public double getFatPercentage( ) {
return fatPercentage;
}
public static void main
( String [ ] args
) { List< Icecream> icecreams = new ArrayList<> ( ) ;
icecreams.add ( new Icecream( "Vanilla" , false , 10.0 ) ) ;
icecreams.add ( new Icecream( "Chocolate" , true , 15.0 ) ) ;
icecreams.add ( new Icecream( "Strawberry" , false , 8.0 ) ) ;
icecreams.add ( new Icecream( "Mint" , false , 12.0 ) ) ;
icecreams.add ( new Icecream( "Chocolate Chip" , true , 18.0 ) ) ;
double totalFatPercentage = 0 ;
int chocolateCount = 0 ;
System .
out .
println ( "Информация о мороженом:" ) ; for ( Icecream icecream : icecreams) {
totalFatPercentage += icecream.getFatPercentage ( ) ;
if ( icecream.hasChocolate ( ) ) {
chocolateCount++;
}
System .
out .
println ( "Название: " + icecream.
getName ( ) ) ; System .
out .
println ( "Наличие шоколада: " + ( icecream.
hasChocolate ( ) ? "Да" : "Нет" ) ) ; System .
out .
println ( "Процент жирности: " + icecream.
getFatPercentage ( ) ) ; System .
out .
println ( "------------------------" ) ; }
double averageFatPercentage = totalFatPercentage / icecreams.size ( ) ;
System .
out .
println ( "Средний процент жирности: " + averageFatPercentage
) ; System .
out .
println ( "Количество мороженого с шоколадом: " + chocolateCount
) ; }
}
aW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CmltcG9ydCBqYXZhLnV0aWwuTGlzdDsKCmNsYXNzIEljZWNyZWFtIHsKICAgIHByaXZhdGUgU3RyaW5nIG5hbWU7CiAgICBwcml2YXRlIGJvb2xlYW4gaGFzQ2hvY29sYXRlOwogICAgcHJpdmF0ZSBkb3VibGUgZmF0UGVyY2VudGFnZTsKCiAgICBwdWJsaWMgSWNlY3JlYW0oU3RyaW5nIG5hbWUsIGJvb2xlYW4gaGFzQ2hvY29sYXRlLCBkb3VibGUgZmF0UGVyY2VudGFnZSkgewogICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CiAgICAgICAgdGhpcy5oYXNDaG9jb2xhdGUgPSBoYXNDaG9jb2xhdGU7CiAgICAgICAgdGhpcy5mYXRQZXJjZW50YWdlID0gZmF0UGVyY2VudGFnZTsKICAgIH0KCiAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7CiAgICAgICAgcmV0dXJuIG5hbWU7CiAgICB9CgogICAgcHVibGljIGJvb2xlYW4gaGFzQ2hvY29sYXRlKCkgewogICAgICAgIHJldHVybiBoYXNDaG9jb2xhdGU7CiAgICB9CgogICAgcHVibGljIGRvdWJsZSBnZXRGYXRQZXJjZW50YWdlKCkgewogICAgICAgIHJldHVybiBmYXRQZXJjZW50YWdlOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBMaXN0PEljZWNyZWFtPiBpY2VjcmVhbXMgPSBuZXcgQXJyYXlMaXN0PD4oKTsKICAgICAgICBpY2VjcmVhbXMuYWRkKG5ldyBJY2VjcmVhbSgiVmFuaWxsYSIsIGZhbHNlLCAxMC4wKSk7CiAgICAgICAgaWNlY3JlYW1zLmFkZChuZXcgSWNlY3JlYW0oIkNob2NvbGF0ZSIsIHRydWUsIDE1LjApKTsKICAgICAgICBpY2VjcmVhbXMuYWRkKG5ldyBJY2VjcmVhbSgiU3RyYXdiZXJyeSIsIGZhbHNlLCA4LjApKTsKICAgICAgICBpY2VjcmVhbXMuYWRkKG5ldyBJY2VjcmVhbSgiTWludCIsIGZhbHNlLCAxMi4wKSk7CiAgICAgICAgaWNlY3JlYW1zLmFkZChuZXcgSWNlY3JlYW0oIkNob2NvbGF0ZSBDaGlwIiwgdHJ1ZSwgMTguMCkpOwoKICAgICAgICBkb3VibGUgdG90YWxGYXRQZXJjZW50YWdlID0gMDsKICAgICAgICBpbnQgY2hvY29sYXRlQ291bnQgPSAwOwoKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oItCY0L3RhNC+0YDQvNCw0YbQuNGPINC+INC80L7RgNC+0LbQtdC90L7QvDoiKTsKICAgICAgICBmb3IgKEljZWNyZWFtIGljZWNyZWFtIDogaWNlY3JlYW1zKSB7CiAgICAgICAgICAgIHRvdGFsRmF0UGVyY2VudGFnZSArPSBpY2VjcmVhbS5nZXRGYXRQZXJjZW50YWdlKCk7CiAgICAgICAgICAgIGlmIChpY2VjcmVhbS5oYXNDaG9jb2xhdGUoKSkgewogICAgICAgICAgICAgICAgY2hvY29sYXRlQ291bnQrKzsKICAgICAgICAgICAgfQogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oItCd0LDQt9Cy0LDQvdC40LU6ICIgKyBpY2VjcmVhbS5nZXROYW1lKCkpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oItCd0LDQu9C40YfQuNC1INGI0L7QutC+0LvQsNC00LA6ICIgKyAoaWNlY3JlYW0uaGFzQ2hvY29sYXRlKCkgPyAi0JTQsCIgOiAi0J3QtdGCIikpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oItCf0YDQvtGG0LXQvdGCINC20LjRgNC90L7RgdGC0Lg6ICIgKyBpY2VjcmVhbS5nZXRGYXRQZXJjZW50YWdlKCkpOwoJCQlTeXN0ZW0ub3V0LnByaW50bG4oIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIpOwogICAgICAgIH0KICAgICAgICBkb3VibGUgYXZlcmFnZUZhdFBlcmNlbnRhZ2UgPSB0b3RhbEZhdFBlcmNlbnRhZ2UgLyBpY2VjcmVhbXMuc2l6ZSgpOwoKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oItCh0YDQtdC00L3QuNC5INC/0YDQvtGG0LXQvdGCINC20LjRgNC90L7RgdGC0Lg6ICIgKyBhdmVyYWdlRmF0UGVyY2VudGFnZSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCLQmtC+0LvQuNGH0LXRgdGC0LLQviDQvNC+0YDQvtC20LXQvdC+0LPQviDRgSDRiNC+0LrQvtC70LDQtNC+0Lw6ICIgKyBjaG9jb2xhdGVDb3VudCk7CiAgICB9Cn0K