Como faço para Inserir Ordenado em uma Lista

e ae galera, como faço para inserior ordenado em uma lista, seguinte essas situações.

tem de verificar se a lista não está vazia
verificar se vai ser inserido na cabeça (first)
verificar se vai ser inserido no meio da lista.

eu tenho um método criado para remover o primeiro, e inserir, mas inserir ordenado ainda não sei fazer…

public link removeFirst(){ // remove 1 elemento if(empty()) return null; Link tmp=first; first=first.next; return=tmp;}

para inserir o primeiro

Public void insertFirst(int iD,double dD){ // insere elementos, e sempre fica na cabeça Link newLink = new Link(iD,dD); newLink.next=first; first=newLink;}

Esse é o método de pesquisa

Public Link find(int key) { if(first==null) return null; link current=first; while(current.getIdada()!=key) { if(current.getNext()==null) return null; else current=current.getNext(); } Return current; }

Esse é o método para remover

Public Link remove(int key) { if(first==null) return null; Link current=first; Link previous=first; while(current.getIdata()!=key) { if(current.getNext()==null) return null; else { previous=current; current=current.getNext(); } } if(current==first) first=first.getNext(); else previous.setNext(current.getNext()); return current; }

se alguém souber inserir ordenado me deêm uma ajuda… obrigado…

olá. certamente nao sou a melhor pessoa pra te ajudar.
mas se puder ser em java, existe uma classe em java chamada PriorityQueue, que é uma fila ordenada.
e tem uma pra array, alguem me corrija se eu estiver errado:

Arrays.sort(suaLista.toArray());