タグ付けされた質問 「collections」

コレクションAPIは、オブジェクトのコレクションの処理を容易にする一連のクラスとインターフェースを開発者に提供します。

23
Javaオブジェクト(bean)をキーと値のペアに(またはその逆に)変換する方法は?
いくつかのgetXXXおよびsetXXXプロパティのみを持つ非常に単純なJavaオブジェクトがあるとします。このオブジェクトは、値を処理するためにのみ使用されます。基本的には、レコードまたはタイプセーフな(そしてパフォーマンスの高い)マップです。このオブジェクトをキー値ペア(文字列またはタイプセーフ)に変換するか、キー値ペアからこのオブジェクトに変換する必要があることがよくあります。 この変換を行うためにリフレクションまたは手動でコードを書く以外に、これを達成するための最良の方法は何ですか? たとえば、ObjectMessageタイプを使用せずに(または受信メッセージを適切な種類のオブジェクトに変換して)、jmsを介してこのオブジェクトを送信する場合があります。

8
ArrayListをスレッドセーフにするにはどうすればよいですか?Javaの問題に対する別のアプローチ?
実行が終了したらすぐにThreadクラスを拡張するRaceCarオブジェクトを保持するために使用するArrayListがあります。Raceと呼ばれるクラスは、RaceCarオブジェクトが実行の終了時に呼び出すコールバックメソッドを使用して、このArrayListを処理します。コールバックメソッドaddFinisher(RaceCar finisher)は、RaceCarオブジェクトをArrayListに追加します。これは、スレッドが実行を終了する順序を与えることになっています。 ArrayListは同期されていないため、スレッドセーフではありません。新しいArrayListを渡し、返されたコレクションをArrayListに割り当てることで、Collections.synchronizedCollection(c Collection)メソッドを使用してみました。ただし、これによりコンパイラエラーが発生します。 Race.java:41: incompatible types found : java.util.Collection required: java.util.ArrayList finishingOrder = Collections.synchronizedCollection(new ArrayList(numberOfRaceCars)); 関連するコードは次のとおりです。 public class Race implements RaceListener { private Thread[] racers; private ArrayList finishingOrder; //Make an ArrayList to hold RaceCar objects to determine winners finishingOrder = Collections.synchronizedCollection(new ArrayList(numberOfRaceCars)); //Fill array with RaceCar objects for(int i=0; …



4
非同期BlockingCollection <T>のようなものはありますか?
非同期awaitの結果を確認したいBlockingCollection&lt;T&gt;.Take()ので、スレッドをブロックしません。このようなものを探しています: var item = await blockingCollection.TakeAsync(); 私はこれができることを知っています: var item = await Task.Run(() =&gt; blockingCollection.Take()); しかし、ThreadPool代わりに(の)別のスレッドがブロックされるため、それはアイデア全体をやや殺します。 代替手段はありますか?

11
重複のないリストの実装はありますか?
私は知っているSortedSetが、私の場合は私が実装していることに何か必要ListとしませんSet。それで、APIまたは他の場所に実装がありますか? 自分で実装するのは難しいことではありませんが、最初にここの人々に聞いてみませんか?


8
CountプロパティとCount()メソッド?
コレクションの操作には、オブジェクトの数を取得する2つの方法があります。Count(プロパティ)とCount()(メソッド)。主な違いが何であるか誰かが知っていますか? 私は間違っているかもしれませんがCount、Count()メソッドがコレクションに対して何らかのクエリを実行すると想定しているため、条件ステートメントでは常にプロパティを使用します。これは、Count「取得」する前にすでに割り当てられている必要があります。しかし、それは推測です-私が間違っているとパフォーマンスが影響を受けるかどうかはわかりません。 編集:好奇心から、Count()コレクションがnullの場合、例外がスローされますか?Countプロパティが単に0を返すと確信しているからです。
85 c#  linq  list  collections  count 

7
リストも実装する挿入順序保存セットはありますか?
私はの実装見つけようとしているjava.util.Listとjava.util.Set、Javaで同時にします。このクラスで一意の要素(as Set)のみを許可し、それらの順序(like List)を保持する必要があります。JDK 6に存在しますか? List&lt;T&gt;#add(int, T)特定の位置に挿入できるようにすることが重要です。
84 java  collections 


4
jdk1.6以降のHashMapsがmulti = threadingで問題を引き起こすことを考えると、コードを修正するにはどうすればよいですか?
私は最近stackoverflowで質問をし、その答えを見つけました。最初の質問は、ミューテックスまたはガベージコレクション以外のどのメカニズムがマルチスレッドJavaプログラムを遅くする可能性があるかということでした。 恐ろしいことに、HashMapがJDK1.6とJDK1.7の間で変更されていることに気づきました。これで、HashMapを作成するすべてのスレッドを同期させるコードのブロックができました。 JDK1.7.0_10のコード行は次のとおりです。 /**A randomizing value associated with this instance that is applied to hash code of keys to make hash collisions harder to find. */ transient final int hashSeed = sun.misc.Hashing.randomHashSeed(this); どちらが呼び出すことになります protected int next(int bits) { long oldseed, nextseed; AtomicLong seed = this.seed; do { oldseed = seed.get(); …

12
複数のフィールドを持つCollections.sort
3つのフィールド(すべての文字列タイプ)を持つ「レポート」オブジェクトのリストがあります- ReportKey StudentNumber School 私はソートコードが次のようになります- Collections.sort(reportList, new Comparator&lt;Report&gt;() { @Override public int compare(final Report record1, final Report record2) { return (record1.getReportKey() + record1.getStudentNumber() + record1.getSchool()) .compareTo(record2.getReportKey() + record2.getStudentNumber() + record2.getSchool()); } }); どういうわけか、並べ替え順がありません。フィールド間にスペースを入れることをお勧めしますが、なぜですか? コードに何か問題がありますか?

4
ストリームでCollections.toMap()を使用するときに、リストの反復順序を維持するにはどうすればよいですか?
私は次のようにMapからを作成してListいます: List&lt;String&gt; strings = Arrays.asList("a", "bb", "ccc"); Map&lt;String, Integer&gt; map = strings.stream() .collect(Collectors.toMap(Function.identity(), String::length)); と同じ反復順序を維持したいと思いListます。メソッドLinkedHashMapを使用してを作成するにはどうすればよいCollectors.toMap()ですか?


3
Javaでリストをシリアル化する方法は?
リストのクローンを作成したいと思います。そのために私たちは方法を持っています // apache commons method. This object should be serializable SerializationUtils.clone ( object ) したがって、リストのクローンを作成するには、最初にそれをシリアル化可能に変換する必要があります。リストをシリアル化可能なリストに変換することは可能ですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.