자바 의 집합 저장 데 이 터 를 말 한 후 출력 데이터 의 질서 와 무질서 문제

HashSet,TreeSet,무질서 란 데 이 터 를 저장 하 는 순서 와 데 이 터 를 꺼 내 는 순서 가 일치 하지 않 는 것 을 말한다.하지만 트 리 셋 은 지 정 된 순서에 따라 순 서 를 매 긴 다.
만약 에 우리 가 데이터 입력 순서에 따라 데 이 터 를 순서대로 출력 하려 면(즉,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,실행 결과

이상 자바 의 집합 저장 데 이 터 를 말 한 후에 출력 데이터 의 질서 와 무질서 문 제 는 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 에 게 참고 가 되 고 여러분 들 이 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기