Вы можете использовать лямбду
boolean hasThisDog = dogs.stream().anyMatch(d -> dogName.equals(d.getName()));
if(hasThisDog){
System.out.println("Error: this dog is already up for auction.");
}else{
auction.add(new auction(dogName));
System.out.printf(dogName + " has been put up for auction in auction #%d", i);
System.out.println();
current = true;
}
Или вы можете использовать SET. SET предотвращает дублирование по умолчанию. Вы можете прочитать о здесь Java: избегайте вставки дубликатов в arraylist
Set set = new HashSet();
set.add(foo);
set.add(bar);
public class Dog{
@Override
public boolean equals(Object obj) {
if (obj instanceof Dog)
return (this.name= obj.name)
else
return false;
}
}
Используйте TransparencyKey для прозрачной формы.
например.
TransparencyKey = Color.Red
Button1.BackColor = Color.Red
Теперь выполните форму, Вы найдете, что button1 имеет дыру в нем.
Так с помощью этого метода можно создать рисунок маски в краске, для которой часть должна быть прозрачной и применить то изображение для формирования, и вуаля форма теперь прозрачна.
Править: Извините за поздний ответ.
Следующее является Вашим кодом, измененным для удовлетворения требованию
Public Sub New()
Me.SetStyle(ControlStyles.SupportsTransparentBackColor, True)
Me.BackColor = Color.Transparent
' This call is required by the Windows Form Designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
Dim img As Bitmap = CType(Me.BackgroundImage, Bitmap)
'img.MakeTransparent(img.GetPixel(2, 2))
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
Me.TransparencyKey = img.GetPixel(2, 2)
End Sub
Me.Opacity = 0
Предупредите что:
Существует несколько методов, которые Вы могли использовать.
Я рекомендую переопределить оконную процедуру для получения оптимальных результатов.