You can define a PL/SQL record type and associated table type. Then you can issue a SELECT...BULK COLLECT
to fill your table.
declare
type my_record_type is record (testId number, testvalue number);
type my_table_type is table of my_record_type index by binary_integer;
my_table my_table_type;
begin
select x, y bulk collect into my_table from table_foo;
end;