List<String> strings; // contains "foo", "bar", "baz", "xyz"
상단으로 이동 선택된 아이템을 이동하도록하고, 입력 "baz"
주어진다면 함수 (문자열 입력) 재 배열 문자열 방법 목록
"baz", "foo", "bar", "xyz"
반환되어야하며 입력
"bar"
기능 재 배열 (문자열 입력) 문자열
List<String> strings; // contains "foo", "bar", "baz", "xyz"
상단으로 이동 선택된 아이템을 이동하도록하고, 입력 "baz"
주어진다면 함수 (문자열 입력) 재 배열 문자열 방법 목록
"baz", "foo", "bar", "xyz"
반환되어야하며 입력
"bar"
기능 재 배열 (문자열 입력) 문자열
public static <T> List<T> rearrange(List<T> items, T input) {
int index = items.indexOf(input);
List<T> copy;
if (index >= 0) {
copy = new ArrayList<T>(items.size());
copy.add(items.get(index));
copy.addAll(items.subList(0, index));
copy.addAll(items.subList(index + 1, items.size()));
} else {
return items;
}
return copy;
}
에게 돌려 첫째, 항목을 제거하고 원래 목록의 상단에 원본 항목을 이동하려면 위치 1
List<String> strings;
List<String> rearrange(String input) {
strings.remove(input);
strings.add(0,input);
return strings;
}
평판이 20000을 넘었으므로 나는이 의견을 진지하게 생각합니다. 이 나쁜 질문에 대한 코드에서 preciese 대답을 제공하고 있습니까? 코드를 제거하면 내 대답이 정말 좋을까요? – sstendal
처음 대답을 올렸을 때 대답이 중복되었습니다. 나는 내 의견에 해결책을 제안하고 마이크는 또한 숟가락으로 답을 주었다. 따라서 새로운 정보를 추가하지 않고 포럼을 혼란스럽게 만들었 기 때문에 귀하의 답변도 필요하지 않았습니다. 대신, 자바 언어를 배울 수 있도록 포스터를 올바른 방향으로 향하게하십시오. API를 실제로 읽도록 강요함으로써 어떤 방법을 사용할 수 있는지 배우게됩니다. 포스터가 답변을 이해하지 못하면 후속 조치 의견을 게시 할 수 있습니다. 사람들이 올바른 방향으로 포인터를 사용하여 스스로 해결할 수있게하십시오. – camickr
에서 다시 항목을 추가 :
public static <T> void rearrange(List<T> items, T input){
int i = items.indexOf(input);
if(i>=0){
items.add(0, items.remove(i));
}
}
public static <T> void setTopItem(List<T> t, int position){
t.add(0, t.remove(position));
}
비록 내가 당신의 대답을 완벽하게 이해한다고해도, 어떤 텍스트는 인정 될 것입니다. –
어떻게 당신이 것 같아 이 작업을 수행? 자신이 시도한 것을 보여주는 코드를 게시하십시오. "remove", "insert"와 같은 메소드에 대해 List API를 읽는 것으로 시작하십시오. – camickr
@ user339108 가장 최근에 사용한 것을 표시하려면 액세스 순서를 사용하는 LinkedHashMap을 사용해야합니다. –