SharedPreferences 은 다른 분들 말씀처럼 key:value 이기 때문에 오직 1:1로만 매칭 되며,
공통된 key 를 가지고 여러 데이터를 삽입할 수 없는 구조 입니다.
같은 key를 가지고 데이터를 삽입하면, 기존에 있던 데이터는 없어지게 됩니다.
그에 반에 sqlite 의 경우 뭐 아시겠지만 중복된 데이터가 허용되고 다수의 행에 데이터를 넣을수가 있죠.
1:1 은 물론 1:n, n:m 관계도 성립을 하죠.
그렇기 때문에 입력되는 데이터들이 일정한 형식과 다수의 데이터가 관계를 지니고 있다면,
sqlite 를 사용하는게 좋겠죠.
추가적으로 리플 중에,
1학년 1반 - 홍길동
1학년 1반 - 김길순
1학년 2반 - 아무개
를 예로 드셨는데, 홍길동과 김길순은 같은 1학년 1반에 속하게 되는데, 이를 SharedPreferences 에 넣을수는 없습니다. 오직 키에 매칭되는 데이터는 1개여야 하는데, 홍길동, 김길순 2개가 존재하기에 하나는 삭제될수 밖에 없습니다. 그렇기에 이러한 데이터는 sqlite 와 같은 데이터를 활용하는게 좋겠죠.
만약 중복데이터 없이 key:value 와같은 형식의 데이터를 삽입한다면, 아무래도 구조상 SharedPreferences 가 빠를 것으로 사료 됩니다만, 이러한 비교 자체는 의미가 없다고 봅니다.
결론적으로 이 둘을 비교하려는 접근이 틀리지 않았나 싶습니다.
비교를 하시고자 한다면, "sqlite"과 "xml 혹은 json" 그 자체랑 비교 해야 되지 않을까요?