Ý tưởng của mình là: Lấy ra giá trị diện tích lớn nhất, sau đó đem so sách lại, nếu bằng với giá trị lớn nhất thì in ra. Code hơi dài, nhưng không nghỉ ra được cách nào ngắn hơn 
Mã:
import java.util.Scanner;
public class hcn {
//thuoc tinh
double a ,b;
//phuong thuc
hcn(double a, double b)
{
this.a = a;
this.b = b;
}
double cv(){
return (a+b)*2;
}
double dt(){
return a*b;
}
public static void main(String agrs[]){
Scanner s = new Scanner(System.in);
System.out.println("Nhap so luong: ");
int n = s.nextInt();
double a, b;
hcn[] A = new hcn[n];
for(int i = 0; i<n; i++)
{
System.out.println("Nhap hinh tron thu " +i+" :");
System.out.println("Nhap chieu dai: ");
a = s.nextFloat();
System.out.print("Nhap chieu rong: ");
b = s.nextFloat();
A[i] = new hcn(a,b);
}
for(int i = 0; i<n; i++)
{
System.out.println("--------------------------");
System.out.println("Hinh thu " + (i+1) + ": ");
System.out.println("Chieu dai: " + A[i].a);
System.out.println("Chieu rong: " + A[i].b);
System.out.println("Chu vi: " + A[i].cv());
System.out.println("Dien tich: " + A[i].dt());
}
//xac dinh gia tri lon nhat
double max = A[0].dt();
for(int i = 0; i<n; i++)
{
if ( max < A[i].dt() ){
max = A[i].dt();
}
}
//so sanh voi max va xuat ket qua
for(int i = 0; i<n; i++)
{
if(A[i].dt() == max){
System.out.println("--------------------------");
System.out.println("Hinh thu " + (i+1) + " la hinh co dien tich lon nhat");
System.out.println("Chieu dai: " + A[i].a);
System.out.println("Chieu rong: " + A[i].b);
System.out.println("Chu vi: " + A[i].cv());
System.out.println("Dien tich: " + A[i].dt());
}
}
}
}