How to get customer address by customer ID?

You cannot retrieve an address based on the customer id so this code will never work:

$address = $this->_addressRepository->getByCustomerId($customerId);//error

Because the getByCustomerId method does not exist in the service contract classes.

What you can do though, is use the data service contract customer class with the following code:

$customerId = $_POST["customer_id"];
$customer = $this->_customerRepository->getById($customerId);
$addresses = $customer->getAddresses();

Please note that getAddresses will return an array of Magento\Customer\Api\Data\AddressInterface.

If you need the default billing address you can call:

$billingAddress = $customer->getDefaultBilling(); 

For get customer adderess using order id in .phtml file

$customerId = 3;
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$customerObj = $objectManager->create('Magento\Customer\Model\Customer')->load($customerId);
$customerAddress = array();

foreach ($customerObj->getAddresses() as $address)
{
    $customerAddress[] = $address->toArray();
}

foreach ($customerAddress as $customerAddres) {

    echo $customerAddres['street'];
    echo $customerAddres['city'];
}

protected $_address;

public function __construct(
    ...
    \Magento\Customer\Model\Address $address,
    ...     
)
{
    ...
    $this->_address = $address;
    ...
}

Use in your function:-

$addressObj = $this->_address;
$addressObj->load($addressid); 

you can get address collection as below:-

$addresses = $addressObj->getCollection();