Heim  >  Artikel  >  Java  >  Wiedererlangung der Grundlagen von Java (14): Zusammenfassung von Arrays

Wiedererlangung der Grundlagen von Java (14): Zusammenfassung von Arrays

黄舟
黄舟Original
2017-01-16 10:15:191396Durchsuche

Erlernen Sie die Grundlagen von Java (14): Zusammenfassung von Arrays

1. Sortieren von Arrays

 数组排序的核心是:对数组的遍历。     
 1、冒泡排序         
 A、冒泡排序一共需要排序arr.length-1次;具体需要多少轮不确定   这个也需要            
 循环  按最多的轮数进行循B、冒泡排序其实就是arr.lengh-1次数组从第一个开始进行连接两个数的依次比较。           
 相邻的两个数比大小,小的放前面,大的放后面(交换位置)         
 代码为:
 int[] arr = { 6, 9, 8, 3, 4, 6, 8, 1, 2 };        
 for (int i = 0; i < arr.length; i++) {            
 for (int j = 0; j < arr.length - 1; j++) {                
 if (arr[j] < arr[j+1]) {                    
 int temp = arr[j];                    
 arr[j] = arr[j + 1];                    
 arr[j + 1] = temp;                
 }            
 }        
 }        
 for (int i : arr) {            
 System.out.print(i + " ");        
 }       
 2、选择排序          
 A、每一轮反复要做:求出最小值,然后把最小值放到前面(交换位置)       
 第1轮    把最小的    发到   arr[0]       
 第2轮    把次小的    发到   arr[1]          
 B、具体需要多少轮不确定    这个也需要循环  按最多的轮数进行              
 循环  数组.length-1          
  其代码:    
  int[] arr = { 8, 6, 5, 3, 4, 2, 9, 6, 5, 7, 4 };        
  for (int i = 0; i < arr.length - 1; i++) {            
  for (int j = i + 1; j < arr.length; j++) {                
  if (arr[i] > arr[j]) {                    
  int temp = arr[i];                    
  arr[i] = arr[j];                    
  arr[j] = temp;                
  }            
  }        
  }        
  for (int i : arr) {            
  System.out.print(i + " ");        
  }

2, Array-Suche

1、顺序查找算法             
标签的重要性!        
int key=5;        
boolean flag=true;        
for (int i = 0; i < arr.length; i++) {            
if(key==arr[i]){                
System.out.println("yes");                
flag=false;                
break;            
}        
}        
if (flag) {           
 System.out.println("oh,no");        
 }        
 2、二分折半查找算法A、 先确定一个范围,然后找中间只,接下来分三种情况比较B、循环次数不确定  建议用while   
 while(left<=right){        
 循环操作        
 //1.找中间值        
 //2.分三种情况进行比较   
 }
 C、 该算法要求数组必须是有序的    
 // 折半排序        
 int key = 9;        
 int min = 0;        
 int max = arr.length-1;        
 int mid = (min + max) / 
 2;        
 boolean flag = true;////      
 while (key != arr[mid]) {//          
 if (key > arr[mid]) {//              
 min = mid + 1;//          
 }//          
 if (key < arr[mid]) {//              
 max = mid - 1;//          
 }//          
 if (max < min) {//              
 System.out.println("这个数不存在!");//              
 flag = false;//              
 break;//          
 }//          
 mid = (min + max) / 
 2;//      
 }//      
 if (flag) {//          
 System.out.println("这个数在" + mid + "位置。");//      
 }        
 while (min <= max) {            
 if (key < arr[mid]) {                
 max = mid - 1;            
 }            
 if (key > arr[mid]) {                
 min = mid + 1;            
 } else {                
 System.out.println("这个数在" + mid + "位置。");                
 flag = false;                
 break;            
 }            
 mid = (min + max) / 2;        
 
 }        
 if (flag) {            
 System.out.println("这个数在" + (mid+1) + "位置。");        
 }

3. Array-Klasse

  1. Diese Klasse ist eine Werkzeugklasse, die hauptsächlich einige Paare enthält von Daten Funktionale Methoden für Operationen wie Sortieren, Suchen usw.

2. Statische funktionale Methode public static void sort(xxx [] a), sortieren Sie das Array a in aufsteigender Reihenfolge public static int BinarySearch(xxx[] a, xxx key), suchen Sie mit der binären Suchmethode public static xxx[] copyOf(xxx[] a nach dem Schlüssel im Array a , int newLength), durch Kopieren der newLength-Längendaten von Array a in das neue Array public static xxx[] copyOfRange(xxx[] a , int from , int to), durch Kopieren des angegebenen Datenbereichs von Array a in das neue array public static boolean equal(xxx[ ] a1, xxx[] a2), vergleiche die beiden Arrays a1 und a2, um zu sehen, ob sie gleich sind

4. Datumsklasse

    Datum in Java-Klasse, speziell zum Speichern von datums- und zeitbezogenen Daten
  1. 2. java.util-Paket

3 Sekunde = 1000 Millisekunden

4 . Veraltet bedeutet, dass die Methode noch existiert, ihre Verwendung jedoch nicht mehr empfohlen wird. Um die Vorwärtskompatibilität sicherzustellen

5. Die Date-Klasse wurde nicht im Hinblick auf die Internationalisierung entwickelt

6. Konstruktor public Date(), kein Parameter-Konstruktor, kann ein Date-Objekt erstellen, das das aktuelle Datum und die aktuelle Uhrzeit enthält (westliches Format: Do 30. Okt. 15:38:46 CST 2014) public Date(long time ), parametrisierter Konstruktor, kann ein Datumsobjekt mit der Zeit in Millisekunden seit 1970-1-1 erstellen

7. Funktionsmethode public long getTime(), gibt dieses Datumsobjekt seit dem 1. Januar 1970 00:00:00 GMT zurück Die Anzahl der dargestellten Millisekunden. Wird häufig zum Vergleich zwischen zwei Daten verwendet.

5. Kalenderklasse

    Diese Klasse ist die Kalenderklasse in Java
  1. 2. Einige veraltete Methoden in der Date-Klasse wurden durch Methoden dieser Klasse

3 java.util-Paket

4 ersetzt. Diese Klasse ist eine abstrakte Klasse und kann keine Objekte über den neuen Kalender c = erstellen Calendar.getInstance();

5. public static Calendar getInstance(), Holen Sie sich ein Instanzobjekt dieser Klasse und geben Sie es zurück

6. Die Funktionsmethode public int get(int field) gibt den Wert zurück des angegebenen Felds im Kalenderobjekt public void set(int field, int value), legt den Wert des angegebenen Felds im Kalenderobjekt fest public final Date getTime(), gibt das Datums- und Uhrzeitobjekt im Kalender zurück

6. SimpleDateFormat-Klasse: Datumsformatierungsklasse

1. format:格式化 (控制格式或风格)
2. 该类专门用于控制日期时间数据的格式
3. 不同国家或地区使用的日期时间的格式是不一样的
4. 创建出来的对象叫格式化器
5. java.text包
6. 构造方法public SimpleDateFormat(),用默认语言环境的日期格式public SimpleDateFormat(String pattern),用给定的日期格式
7. 功能方法public final String format(Date date),将一个 Date对象格式化为日期/时间字符串。
public Date parse(String source),将字符串解析(转换)为Date对象a.必须进行异常处理
b.该方法要求格式化器对象的格式跟字符串格式必须一样        
// 让用户在控制台输入“dd/mm/yyyy”格式的日期,        
// // 然后人工拼接成“yyyy-mm-dd”格式,最后按“xxxx年x月xx日"              
格式输出 
String s = "1992/08/24"; 
SimpleDateFormat s1 = new SimpleDateFormat("yyyy/MM/dd"); 
Date date = s1.parse(s); 
SimpleDateFormatsDate = new SimpleDateFormat("yyyy-MM-dd"); 
String s2 = sDate.format(date); 
SimpleDateFormat pDate = new SimpleDateFormat("yyyy年MM月dd日"); 
String s3 = pDate.format(date); 
System.out.println("人工拼接成:" + s2 + ",最后输出:" + s3);    
// // 3.计算从今天起,100天后是几月几号,        
// 并以xxxx年xx月xx日的格式输出来        
// (提示:查阅帮助文档自学Calendar类的add方法)        
Calendar c =Calendar.getInstance();        
c.add(Calendar.DAY_OF_YEAR, 100);        
Date date = c.getTime();    
SimpleDateFormat s = new SimpleDateFormat("yyyy年MM月dd日");        
String s1=s.format(date);        
System.out.println(s1);


Das Obige ist der Inhalt für weitere verwandte Inhalte Bitte achten Sie auf die chinesische PHP-Website (www.php.cn)!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn