黒馬プログラマーJAVA集合

6917 ワード

--------Javaトレーニング、Androidトレーニング、iOSトレーニング、Netトレーニング、期待とあなたの交流!-----。
個人の集合に対する理解: 集合は一つの容器で、一つのオブジェクトで複数のオブジェクトを処理できます。 javaでよく使われるセットは、システムにおいて三つのインターフェースを定義している。 java.util.Setインターフェースとそのサブクラス、Setが提供するのは無秩序なセットです。 java.util.Listインターフェースとそのサブクラスは、Listが提供するのは順序正しいセットである。 java.util.Mapインターフェースとそのサブクラスは、Mapがマッピング関係のセットデータ構造を提供しています。 集合には把握が必要です。 どうやって選択したオブジェクトを獲得しますか? 集合中の要素を増やすにはどうすればいいですか? どうやってセットの要素を削除しますか? 集合中の要素を巡回するにはどうすればいいですか? 3つの集合: セット: Setは無秩序集合であり、同じ要素を保存することは許されない。 実現類はhashSetがあります セットの方法: bolean add(E,o)は、集合にオブジェクトを追加し、このオブジェクトがセットにある場合、falseに戻ります。 bollan addAllは、集合に別の集合を加える。 bootlean contains(Object o)は、集合があるオブジェクトがあるかどうかを判定します。 bootlean containsAllは、集合に別の集合が含まれているかどうかを判断する。 Iteratorこの集合のローズマリーを入手します。 bollan remove(Object o)は、セットからオブジェクトを削除します。 int size()は、セット内の要素の個数を返します。 Object[]toAray()は集合を行列オブジェクトに変換します。 セットの増加、削除、変更、検索の操作を行います。 コード: 
public class Mysettest { 
public static void main(String []args){ 
Mysettest mt=new Mysettest(); 
//    10         
Set<Student> set=mt.userSet(10); 
mt.print(set); 
//     15       
mt.reacher(set, 15); 
//      10       
Set<Student> sSet=mt.Delete(set, 10); 
mt.print(sSet); 
} 
//          
public Set<Student> userSet(int size){ 
java.util.Random rd=new java.util.Random(); 
//       
Set<Student> set=new HashSet<Student>(); 
for(int i=0;i<size;i++){ 
Student st=new Student("  :"+((char)(65+i)),rd.nextInt(20)); 
//       set    
set.add(st); 
} 
return set; 
} 
//        
public void reacher(Set<Student> set,int scroe){ 
System.out.println("   "+scroe+"   =============================>"); 
// set       
java.util.Iterator<Student> it=set.iterator(); 
while(it.hasNext()){ 
Student st=it.next(); 
if(st.getscore()==scroe){ 
st.showInfo(); 
} 
} 
} 
//          
public Set<Student> Delete(Set<Student> set ,int scroe){ 
System.out.println("    "+scroe+"   =============================>"); 
//                    
Set<Student> s=new HashSet<Student>(); 
// set       
java.util.Iterator<Student> it=set.iterator(); 
while(it.hasNext()){ 
Student st=it.next(); 
if(st.getscore()<scroe){ 
s.add(st); 
} 
} 
// set    s     
set.removeAll(s); 
return set; 
} 
//           
public void print(Set<Student> set){ 
// set       
java.util.Iterator<Student> it=set.iterator(); 
while(it.hasNext()){ 
Student st=it.next(); 
st.showInfo(); 
} 
} 
}
Setに同じ2つの要素を加えると上書きされます。2つの要素はセットに同時に存在してはいけません。 List:Listは、同じ要素を保存することができる秩序ある集合である。 実現クラスはArayList、Linked Listがあります。 List集合の方法: bolean add(E,o)は、集合にオブジェクトを追加し、このオブジェクトがセットにある場合、falseに戻ります。 bollan addAllは、集合に別の集合を加える。 bootlean contains(Object o)は、集合があるオブジェクトがあるかどうかを判定します。 bootlean containsAllは、集合に別の集合が含まれているかどうかを判断する。 Iteratorこの集合のローズマリーを入手します。 bollan remove(Object o)は、セットからオブジェクトを削除します。 int size()は、セット内の要素の個数を返します。 Object[]toAray()は集合を行列オブジェクトに変換します。 Listの集合に対して増加、削除、修正、調査の操作を行います。 コード: 
public class Mylisttest { 
public static void main(String []args){ 
Mylisttest ml=new Mylisttest(); 
//       
List<Student> list=ml.create(10); 
ml.print(list); 
//     15       
ml.reacher(list, 15); 
//      10       
List<Student>l=ml.Delete(list, 10); 
ml.print(l); 
} 
//       
public List<Student> create(int size){ 
java.util.Random rd=new java.util.Random(); 
//       
List<Student> list=new ArrayList<Student>(); 
for(int i=0;i<size;i++){ 
//       
Student st=new Student("  :"+((char)(65+i)),rd.nextInt(20)); 
//       list    
list.add(st); 
} 
return list; 
} 
//          
public void reacher(List<Student> list,int score){ 
System.out.println("   "+score+"   ======================>"); 
for(int i=0;i<list.size();i++){ 
Student st=list.get(i); 
if(st.getscore()==score){ 
st.showInfo(); 
} 
} 
} 
//          
public List<Student> Delete(List<Student> list,int score){ 
System.out.println("        ======================>"); 
for(int i=0;i<list.size();i++){ 
Student st=list.get(i); 
if(st.getscore()<score){ 
list.remove(st); 
} 
} 
return list; 
} 
//       
public void print(List<Student> list){ 
for(int i=0;i<list.size();i++){ 
Student st=list.get(i); 
st.showInfo(); 
} 
} 
}
なぜローズマリーを追加しますか?セットは無秩序なので、インデックスに従って配列全体を巡回することはできません。だから、ローズマリーを追加してセットを巡回します。 Listに同じ2つの要素を追加すると上書きされません。2つの要素は同時にListセットに存在してもいいです。 Map:に入れられたオブジェクトは一対のペアです。つまり、各オブジェクトとその名前は一つに関連しています。 Mapには2つのオブジェクトが格納されています。1つはkey(キー)で、1つはvalue(値)で、それらは1つに対応しています。 Mapの中のkeyは同じ値があってはいけません。valueは同じ値があります。 Mapの方法: put(K key,V value)はMapセットに関連するオブジェクトを追加します。 void putAllは他のMapのキーと値をMapに追加します。 bootlean containsKeyはMapのKeyに特定のKeyオブジェクトがあるかどうかを判断します。 bootlean containsKeyはMapのKeyに何らかの指定のvalueオブジェクトが存在するかどうかを判断する。 V remove(Object key)は、Mapからkeyに対応するvalueを削除します。 int size()は、Mapのオブジェクト数を取得します。 Set<k>keySet()は、Map内の全てのkeyオブジェクトを一つのセットに入れて返します。 Collection<v>values()は、Mapのすべてのvalueオブジェクトを一つのCollectionに入れて返します。 Mapの集合を増やし、削除し、修正し、検索する操作コード: 
public class MyMapTest { 
public static void main(String []args){ 
MyMapTest mt=new MyMapTest(); 
Map<String,Student>map=mt.create(10); 
mt.print(map); 
//   
mt.reacher(map, 15); 
//   
mt.Delete(map, 10); 
} 
//       
public Map<String,Student> create(int size){ 
java.util.Random rd=new java.util.Random(); 
//  map   
Map<String,Student> map=new HashMap<String,Student>(); 
for(int i=0;i<size;i++){ 
Student st=new Student("  :"+((char)(65+i)),rd.nextInt(20)); 
map.put(""+i,st); 
} 
return map; 
} 
//       
public void reacher(Map<String,Student> map,int score){ 
System.out.println("   "+score+"   ======================>"); 
//  Map key    
Set<String> set=map.keySet(); 
// set     
java.util.Iterator<String> it=set.iterator(); 
while(it.hasNext()){ 
String key=it.next(); 
Student st=map.get(key); 
if(st.getscore()==score){ 
st.showInfo(); 
} 
} 
} 
//       
public void Delete(Map<String,Student> map,int score){ 
System.out.println("        ======================>"); 
//  Map key    
Set<String> set=map.keySet(); 
//                 
Set<String> s=new HashSet<String>(); 
// set     
java.util.Iterator<String> it=set.iterator(); 
while(it.hasNext()){ 
String key=it.next(); 
Student st=map.get(key); 
if(st.getscore()<score){ 
s.add(key); 
} 
} 
set.removeAll(s); 
// set     
java.util.Iterator<String> iter=set.iterator(); 
while(iter.hasNext()){ 
String key=iter.next(); 
Student st=map.get(key); 
st.showInfo(); 
} 
} 
//       
public void print (Map<String,Student> map){ 
//  Map key    
Set<String> set=map.keySet(); 
// set     
java.util.Iterator<String> it=set.iterator(); 
while(it.hasNext()){ 
String key=it.next(); 
Student st=map.get(key); 
st.showInfo(); 
} 
} 
}