자바 의 집합 저장 데 이 터 를 말 한 후 출력 데이터 의 질서 와 무질서 문제
만약 에 우리 가 데이터 입력 순서에 따라 데 이 터 를 순서대로 출력 하려 면(즉,4,1,7,3 을 순서대로 입력 하면 출력 할 때 4,1,7,3)링크 드 HashMap,링크 드 HashSet 을 사용 해 야 합 니 다.
package Demo;
import java.util.*;
import java.util.Map.*;
public class DemoMap {
public static void main(String[] args) {
text3();
System.out.println("==========================================");
text4();
}
public static void text3(){
Map<Integer,String> DemoMap=new HashMap<Integer,String>();
DemoMap.put(4, "dddd");
DemoMap.put(1, "a");
DemoMap.put(3, "ccc");
DemoMap.put(2, "bb");
Iterator<Map.Entry<Integer , String>> it =DemoMap.entrySet().iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
public static void text4(){
Map<Integer,String> DemoMap=new LinkedHashMap<Integer,String>();
DemoMap.put(4, "dddd");
DemoMap.put(1, "a");
DemoMap.put(3, "ccc");
DemoMap.put(2, "bb");
Iterator<Map.Entry<Integer , String>> it =DemoMap.entrySet().iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
실행 결 과 는:보충 지식:자바 배열 은 질서 있 는 배열 에 데 이 터 를 삽입 하고 배열 의 질 서 를 유지 합 니 다.
1.정렬 안내
이 문제 에 대해 서 는 정렬 에 삽 입 된 질서 있 는 정렬 이 라 고 볼 수 있다.간단하게 소개 하 자.정렬 을 삽입 하 는 기본 사상 은 하나의 기록 을 이미 정렬 된 질서 표 에 삽입 하여 새로운 기록 수가 1 증가 하 는 질서 표 이다.
2.사고 분석
세 가지 상황 으로 나 눌 수 있 습 니 다.첫 번 째 헤드 삽입 법 은 바로 데 이 터 를 배열 의 첫 번 째 에 삽입 하 는 것 입 니 다.이런 상황 에 삽 입 된 데 이 터 는 최대 치 또는 최소 치 입 니 다.두 번 째 상황 은 데 이 터 를 배열 에 삽입 하고 삽 입 된 배열 의 수치 범 위 는 최대 값 과 최소 값 사이 에 있 습 니 다.세 번 째 상황 은 바로 꼬리 삽입 법 으로 삽 입 된 데 이 터 는 최대 치 또는 최소 치 이다.
첫 번 째 플러그 인
순서 배열 입력:arr={2,3,6,89}
삽 입 된 기록(데이터):1
출력 삽입 데이터 의 질서 있 는 배열:arr={1,2,3,6,89}
두 번 째 삽입 배열 사이
순서 배열:arr={2,3,6,89}
삽 입 된 기록(데이터):5
돌아 오 는 질서 있 는 배열:arr={2,3,5,6,89}
두 번 째 꼬리 삽입 법
순서 배열:arr={2,3,6,89}
삽 입 된 기록(데이터):100
돌아 오 는 질서 있 는 배열:arr={2,3,6,89,100}
3,자바 코드 구현
package sort;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* project_name: JavaDemo
* filename: InsertSort
* IDE: IntelliJ IDEA
* author: ganxiang
* CreateDate:2020-07-18 16:04
*/
public class InsertSort {
//
private List insertHead(int [] arr,int data){
int len =arr.length;
int [] a =new int[len+1];
int k=0;
if (data<=arr[0]) a[k]=data;
for (int i = 0; i <=len-1 ; i++) {
k+=1;
a[k]=arr[i];
}
List<Integer> list =new ArrayList<>();
for (int num:a) {
list.add(num);
}
return list;
}
//
private List insertBody(int [] arr,int data){
int len =arr.length;
int [] a =new int[len+1];
int k=0;// k
for (int i = 0; i <=len-1 ; i++) {
if(data>=arr[i]&&data<=arr[i+1]){
a[k]=arr[i];
k+=1;
a[k]=data;
i+=1;
k+=1;
}
a[k]=arr[i];
k+=1;
}
// System.out.println(Arrays.toString(a));
List<Integer> list =new ArrayList<>();
for (int num:a) {
list.add(num);
}
return list;
}
//
private List insertTial(int [] arr,int data) {
int len = arr.length;
int[] a = new int[len + 1];
int k = 0;
for (int i = 0; i <= len - 1; i++) {
a[k] = arr[i];
k += 1;
}
if (data >= arr[len - 1]) a[k] = data;
List<Integer> list = new ArrayList<>();
for (int num : a) {
list.add(num);
}
return list;
}
public static void main(String[] args) {
int [] arr ={2,3,6,89};
System.out.println(" arr :"+Arrays.toString(arr));
System.out.println("1, 1 :"+new InsertSort().insertHead(arr,1));
System.out.println("2, 5 :"+new InsertSort().insertBody(arr,5));
System.out.println("3, 100 :"+new InsertSort().insertTial(arr,100));
}
}
4,실행 결과이상 자바 의 집합 저장 데 이 터 를 말 한 후에 출력 데이터 의 질서 와 무질서 문 제 는 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 에 게 참고 가 되 고 여러분 들 이 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.